survey-creator-core 1.9.78 → 1.9.80

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack://SurveyCreatorCore/webpack/universalModuleDefinition","webpack://SurveyCreatorCore/webpack/bootstrap","webpack://SurveyCreatorCore/./node_modules/papaparse/papaparse.min.js","webpack://SurveyCreatorCore/./src/components/action-container-view-model.ts","webpack://SurveyCreatorCore/./src/components/creator.scss?00d9","webpack://SurveyCreatorCore/./src/components/embedded-survey.ts","webpack://SurveyCreatorCore/./src/components/header/logo-image.scss?098a","webpack://SurveyCreatorCore/./src/components/header/logo-image.ts","webpack://SurveyCreatorCore/./src/components/image-item-value.scss?4feb","webpack://SurveyCreatorCore/./src/components/image-item-value.ts","webpack://SurveyCreatorCore/./src/components/item-value.scss?8ca6","webpack://SurveyCreatorCore/./src/components/item-value.ts","webpack://SurveyCreatorCore/./src/components/link-value.scss?533c","webpack://SurveyCreatorCore/./src/components/link-value.ts","webpack://SurveyCreatorCore/./src/components/matrix-cell.scss?d860","webpack://SurveyCreatorCore/./src/components/matrix-cell.ts","webpack://SurveyCreatorCore/./src/components/page-navigator/page-navigator-item.scss?0d8d","webpack://SurveyCreatorCore/./src/components/page-navigator/page-navigator.scss?be1a","webpack://SurveyCreatorCore/./src/components/page-navigator/page-navigator.ts","webpack://SurveyCreatorCore/./src/components/page.scss?439b","webpack://SurveyCreatorCore/./src/components/page.ts","webpack://SurveyCreatorCore/./src/components/property-panel/property-panel-item.scss?38f9","webpack://SurveyCreatorCore/./src/components/property-panel/property-panel.scss?3a52","webpack://SurveyCreatorCore/./src/components/question-dropdown.scss?010f","webpack://SurveyCreatorCore/./src/components/question-dropdown.ts","webpack://SurveyCreatorCore/./src/components/question-image.scss?8a76","webpack://SurveyCreatorCore/./src/components/question-image.ts","webpack://SurveyCreatorCore/./src/components/question-rating.scss?af26","webpack://SurveyCreatorCore/./src/components/question-rating.ts","webpack://SurveyCreatorCore/./src/components/question.scss?8bb1","webpack://SurveyCreatorCore/./src/components/question.ts","webpack://SurveyCreatorCore/./src/components/results.scss?2f01","webpack://SurveyCreatorCore/./src/components/results.ts","webpack://SurveyCreatorCore/./src/components/row.scss?4075","webpack://SurveyCreatorCore/./src/components/row.ts","webpack://SurveyCreatorCore/./src/components/side-bar/side-bar-model.ts","webpack://SurveyCreatorCore/./src/components/side-bar/side-bar-tab-model.ts","webpack://SurveyCreatorCore/./src/components/side-bar/side-bar.scss?1f76","webpack://SurveyCreatorCore/./src/components/simulator.scss?f38a","webpack://SurveyCreatorCore/./src/components/simulator.ts","webpack://SurveyCreatorCore/./src/components/string-editor.scss?f6c2","webpack://SurveyCreatorCore/./src/components/string-editor.ts","webpack://SurveyCreatorCore/./src/components/tabbed-menu/tabbed-menu-item.scss?5be1","webpack://SurveyCreatorCore/./src/components/tabbed-menu/tabbed-menu.scss?de9f","webpack://SurveyCreatorCore/./src/components/tabs/designer-plugin.ts","webpack://SurveyCreatorCore/./src/components/tabs/designer.scss?22dc","webpack://SurveyCreatorCore/./src/components/tabs/designer.ts","webpack://SurveyCreatorCore/./src/components/tabs/embed-json.ts","webpack://SurveyCreatorCore/./src/components/tabs/embed.scss?0e63","webpack://SurveyCreatorCore/./src/components/tabs/embed.ts","webpack://SurveyCreatorCore/./src/components/tabs/json-editor-ace.scss?0bf8","webpack://SurveyCreatorCore/./src/components/tabs/json-editor-ace.ts","webpack://SurveyCreatorCore/./src/components/tabs/json-editor-plugin.ts","webpack://SurveyCreatorCore/./src/components/tabs/json-editor-textarea.scss?5b39","webpack://SurveyCreatorCore/./src/components/tabs/json-editor-textarea.ts","webpack://SurveyCreatorCore/./src/components/tabs/logic-actions-model.ts","webpack://SurveyCreatorCore/./src/components/tabs/logic-expression.ts","webpack://SurveyCreatorCore/./src/components/tabs/logic-item-editor.ts","webpack://SurveyCreatorCore/./src/components/tabs/logic-items.ts","webpack://SurveyCreatorCore/./src/components/tabs/logic-plugin.ts","webpack://SurveyCreatorCore/./src/components/tabs/logic-theme.ts","webpack://SurveyCreatorCore/./src/components/tabs/logic-types.ts","webpack://SurveyCreatorCore/./src/components/tabs/logic-ui.scss?bfcf","webpack://SurveyCreatorCore/./src/components/tabs/logic-ui.ts","webpack://SurveyCreatorCore/./src/components/tabs/logic.scss?294b","webpack://SurveyCreatorCore/./src/components/tabs/logic.ts","webpack://SurveyCreatorCore/./src/components/tabs/test-plugin.ts","webpack://SurveyCreatorCore/./src/components/tabs/test.scss?de27","webpack://SurveyCreatorCore/./src/components/tabs/test.ts","webpack://SurveyCreatorCore/./src/components/tabs/translation-plugin.ts","webpack://SurveyCreatorCore/./src/components/tabs/translation-theme.ts","webpack://SurveyCreatorCore/./src/components/tabs/translation.scss?3bdb","webpack://SurveyCreatorCore/./src/components/tabs/translation.ts","webpack://SurveyCreatorCore/./src/components/toolbox/toolbox-tool.scss?d70f","webpack://SurveyCreatorCore/./src/components/toolbox/toolbox-tool.ts","webpack://SurveyCreatorCore/./src/components/toolbox/toolbox.scss?d3e6","webpack://SurveyCreatorCore/./src/creator-base.ts","webpack://SurveyCreatorCore/./src/creator-responsivity-manager.ts","webpack://SurveyCreatorCore/./src/creator-settings.ts","webpack://SurveyCreatorCore/./src/creator-theme/creator.scss","webpack://SurveyCreatorCore/./src/editable-object.ts","webpack://SurveyCreatorCore/./src/editorLocalization.ts","webpack://SurveyCreatorCore/./src/entries/helpers.ts","webpack://SurveyCreatorCore/./src/entries/index.ts","webpack://SurveyCreatorCore/./src/expressionToDisplayText.ts","webpack://SurveyCreatorCore/./src/images sync nonrecursive \\.svg$","webpack://SurveyCreatorCore/./src/images/add-lg.svg","webpack://SurveyCreatorCore/./src/images/add.svg","webpack://SurveyCreatorCore/./src/images/add_16x16.svg","webpack://SurveyCreatorCore/./src/images/apply.svg","webpack://SurveyCreatorCore/./src/images/arrow-down.svg","webpack://SurveyCreatorCore/./src/images/arrow-left.svg","webpack://SurveyCreatorCore/./src/images/arrow-left_16x16.svg","webpack://SurveyCreatorCore/./src/images/arrow-right.svg","webpack://SurveyCreatorCore/./src/images/arrow-right_16x16.svg","webpack://SurveyCreatorCore/./src/images/arrow-up.svg","webpack://SurveyCreatorCore/./src/images/boolean.svg","webpack://SurveyCreatorCore/./src/images/change-question-type_16x16.svg","webpack://SurveyCreatorCore/./src/images/checkbox.svg","webpack://SurveyCreatorCore/./src/images/checked.svg","webpack://SurveyCreatorCore/./src/images/clear.svg","webpack://SurveyCreatorCore/./src/images/clear_16x16.svg","webpack://SurveyCreatorCore/./src/images/collapse-detail-light_16x16.svg","webpack://SurveyCreatorCore/./src/images/collapse-detail_16x16.svg","webpack://SurveyCreatorCore/./src/images/collapse-panel.svg","webpack://SurveyCreatorCore/./src/images/collapse_16x16.svg","webpack://SurveyCreatorCore/./src/images/comment.svg","webpack://SurveyCreatorCore/./src/images/default.svg","webpack://SurveyCreatorCore/./src/images/delete_16x16.svg","webpack://SurveyCreatorCore/./src/images/description-hide.svg","webpack://SurveyCreatorCore/./src/images/description.svg","webpack://SurveyCreatorCore/./src/images/device-desktop.svg","webpack://SurveyCreatorCore/./src/images/device-phone.svg","webpack://SurveyCreatorCore/./src/images/device-rotate.svg","webpack://SurveyCreatorCore/./src/images/device-tablet.svg","webpack://SurveyCreatorCore/./src/images/download.svg","webpack://SurveyCreatorCore/./src/images/drag-area-indicator.svg","webpack://SurveyCreatorCore/./src/images/drag-area-indicator_24x16.svg","webpack://SurveyCreatorCore/./src/images/drop-down-arrow.svg","webpack://SurveyCreatorCore/./src/images/drop-down-arrow_16x16.svg","webpack://SurveyCreatorCore/./src/images/dropdown.svg","webpack://SurveyCreatorCore/./src/images/duplicate_16x16.svg","webpack://SurveyCreatorCore/./src/images/edit.svg","webpack://SurveyCreatorCore/./src/images/edit_16x16.svg","webpack://SurveyCreatorCore/./src/images/editing-finish.svg","webpack://SurveyCreatorCore/./src/images/expand-detail-light_16x16.svg","webpack://SurveyCreatorCore/./src/images/expand-detail_16x16.svg","webpack://SurveyCreatorCore/./src/images/expand-panel.svg","webpack://SurveyCreatorCore/./src/images/expand_16x16.svg","webpack://SurveyCreatorCore/./src/images/export.svg","webpack://SurveyCreatorCore/./src/images/expression.svg","webpack://SurveyCreatorCore/./src/images/fast-entry.svg","webpack://SurveyCreatorCore/./src/images/file.svg","webpack://SurveyCreatorCore/./src/images/html.svg","webpack://SurveyCreatorCore/./src/images/image.svg","webpack://SurveyCreatorCore/./src/images/imagepicker.svg","webpack://SurveyCreatorCore/./src/images/import.svg","webpack://SurveyCreatorCore/./src/images/invisible-items.svg","webpack://SurveyCreatorCore/./src/images/keyboard-dragging.svg","webpack://SurveyCreatorCore/./src/images/language.svg","webpack://SurveyCreatorCore/./src/images/load.svg","webpack://SurveyCreatorCore/./src/images/logic-collapse.svg","webpack://SurveyCreatorCore/./src/images/logic-expand.svg","webpack://SurveyCreatorCore/./src/images/logo.svg","webpack://SurveyCreatorCore/./src/images/matrix.svg","webpack://SurveyCreatorCore/./src/images/matrixdropdown.svg","webpack://SurveyCreatorCore/./src/images/matrixdynamic.svg","webpack://SurveyCreatorCore/./src/images/multipletext.svg","webpack://SurveyCreatorCore/./src/images/next_16x16.svg","webpack://SurveyCreatorCore/./src/images/panel.svg","webpack://SurveyCreatorCore/./src/images/paneldynamic.svg","webpack://SurveyCreatorCore/./src/images/preview.svg","webpack://SurveyCreatorCore/./src/images/previous_16x16.svg","webpack://SurveyCreatorCore/./src/images/radiogroup.svg","webpack://SurveyCreatorCore/./src/images/ranking.svg","webpack://SurveyCreatorCore/./src/images/rating.svg","webpack://SurveyCreatorCore/./src/images/redo.svg","webpack://SurveyCreatorCore/./src/images/remove_16x16.svg","webpack://SurveyCreatorCore/./src/images/save.svg","webpack://SurveyCreatorCore/./src/images/select-page.svg","webpack://SurveyCreatorCore/./src/images/settings.svg","webpack://SurveyCreatorCore/./src/images/settings_16x16.svg","webpack://SurveyCreatorCore/./src/images/signaturepad.svg","webpack://SurveyCreatorCore/./src/images/switch-active_16x16.svg","webpack://SurveyCreatorCore/./src/images/switch-inactive_16x16.svg","webpack://SurveyCreatorCore/./src/images/tagbox.svg","webpack://SurveyCreatorCore/./src/images/text.svg","webpack://SurveyCreatorCore/./src/images/theme.svg","webpack://SurveyCreatorCore/./src/images/toolbox.svg","webpack://SurveyCreatorCore/./src/images/undo.svg","webpack://SurveyCreatorCore/./src/images/visible.svg","webpack://SurveyCreatorCore/./src/images/wizard.svg","webpack://SurveyCreatorCore/./src/json5.ts","webpack://SurveyCreatorCore/./src/localization/english.ts","webpack://SurveyCreatorCore/./src/pages-controller.ts","webpack://SurveyCreatorCore/./src/plugins/undo-redo/index.ts","webpack://SurveyCreatorCore/./src/plugins/undo-redo/undo-redo-controller.ts","webpack://SurveyCreatorCore/./src/plugins/undo-redo/undo-redo-manager.ts","webpack://SurveyCreatorCore/./src/property-grid-theme/property-grid.scss?2e55","webpack://SurveyCreatorCore/./src/property-grid-theme/property-grid.ts","webpack://SurveyCreatorCore/./src/property-grid/bindings.ts","webpack://SurveyCreatorCore/./src/property-grid/cells-survey.ts","webpack://SurveyCreatorCore/./src/property-grid/condition-survey.ts","webpack://SurveyCreatorCore/./src/property-grid/condition.ts","webpack://SurveyCreatorCore/./src/property-grid/description-parser.ts","webpack://SurveyCreatorCore/./src/property-grid/fast-entry.ts","webpack://SurveyCreatorCore/./src/property-grid/index.ts","webpack://SurveyCreatorCore/./src/property-grid/matrices.ts","webpack://SurveyCreatorCore/./src/property-grid/object-selector.ts","webpack://SurveyCreatorCore/./src/property-grid/property-grid-view-model.ts","webpack://SurveyCreatorCore/./src/property-grid/restfull.ts","webpack://SurveyCreatorCore/./src/property-grid/values-survey.ts","webpack://SurveyCreatorCore/./src/property-grid/values.ts","webpack://SurveyCreatorCore/./src/question-editor/definition.ts","webpack://SurveyCreatorCore/./src/question-editor/properties.ts","webpack://SurveyCreatorCore/./src/questionconverter.ts","webpack://SurveyCreatorCore/./src/responsivity.scss?4b16","webpack://SurveyCreatorCore/./src/selection-history.ts","webpack://SurveyCreatorCore/./src/survey-helper.ts","webpack://SurveyCreatorCore/./src/svgbundle.ts","webpack://SurveyCreatorCore/./src/textWorker.ts","webpack://SurveyCreatorCore/./src/toolbox.ts","webpack://SurveyCreatorCore/./src/utils/actions.ts","webpack://SurveyCreatorCore/./src/utils/design.scss?f161","webpack://SurveyCreatorCore/./src/utils/layout.scss?c5b9","webpack://SurveyCreatorCore/./src/utils/resizer.ts","webpack://SurveyCreatorCore/./src/utils/utils.ts","webpack://SurveyCreatorCore/external {\"root\":\"Survey\",\"commonjs2\":\"survey-core\",\"commonjs\":\"survey-core\",\"amd\":\"survey-core\"}"],"names":[],"mappings":"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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gD;;;;;;;;;;;AC3GA,gU;;;;;;;;;;;ACAA,gT;;;;;;;;;;;ACAA,4S;;;;;;;;;;;ACAA,8T;;;;;;;;;;;ACAA,8M;;;;;;;;;;;ACAA,6L;;;;;;;;;;;ACAA,+O;;;;;;;;;;;ACAA,+L;;;;;;;;;;;ACAA,2M;;;;;;;;;;;ACAA,8N;;;;;;;;;;;ACAA,inB;;;;;;;;;;;ACAA,2T;;;;;;;;;;;ACAA,0V;;;;;;;;;;;ACAA,8J;;;;;;;;;;;ACAA,0X;;;;;;;;;;;ACAA,4S;;;;;;;;;;;ACAA,4H;;;;;;;;;;;ACAA,4J;;;;;;;;;;;ACAA,8L;;;;;;;;;;;ACAA,8I;;;;;;;;;;;ACAA,6Q;;;;;;;;;;;ACAA,grB;;;;;;;;;;;ACAA,+S;;;;;;;;;;;ACAA,irC;;;;;;;;;;;ACAA,s3C;;;;;;;;;;;ACAA,gT;;;;;;;;;;;ACAA,sb;;;;;;;;;;;ACAA,8Y;;;;;;;;;;;ACAA,sb;;;;;;;;;;;ACAA,qM;;;;;;;;;;;ACAA,qnB;;;;;;;;;;;ACAA,slB;;;;;;;;;;;ACAA,kI;;;;;;;;;;;ACAA,+H;;;;;;;;;;;ACAA,kS;;;;;;;;;;;ACAA,k1B;;;;;;;;;;;ACAA,kgB;;;;;;;;;;;ACAA,4mB;;;;;;;;;;;ACAA,slB;;;;;;;;;;;ACAA,6I;;;;;;;;;;;ACAA,4K;;;;;;;;;;;ACAA,4R;;;;;;;;;;;ACAA,+I;;;;;;;;;;;ACAA,iP;;;;;;;;;;;ACAA,6uB;;;;;;;;;;;ACAA,4c;;;;;;;;;;;ACAA,qP;;;;;;;;;;;ACAA,2V;;;;;;;;;;;ACAA,uU;;;;;;;;;;;ACAA,0Y;;;;;;;;;;;ACAA,qM;;;;;;;;;;;ACAA,s6C;;;;;;;;;;;ACAA,8L;;;;;;;;;;;ACAA,0pB;;;;;;;;;;;ACAA,uiB;;;;;;;;;;;ACAA,uf;;;;;;;;;;;ACAA,yf;;;;;;;;;;;ACAA,sa;;;;;;;;;;;ACAA,86B;;;;;;;;;;;ACAA,urC;;;;;;;;;;;ACAA,+2B;;;;;;;;;;;ACAA,6W;;;;;;;;;;;ACAA,8N;;;;;;;;;;;ACAA,6Q;;;;;;;;;;;ACAA,ohB;;;;;;;;;;;ACAA,4/B;;;;;;;;;;;ACAA,2N;;;;;;;;;;;ACAA,wc;;;;;;;;;;;ACAA,4L;;;;;;;;;;;ACAA,ue;;;;;;;;;;;ACAA,yR;;;;;;;;;;;ACAA,4R;;;;;;;;;;;ACAA,gb;;;;;;;;;;;ACAA,uV;;;;;;;;;;;ACAA,8pB;;;;;;;;;;;ACAA,8nB;;;;;;;;;;;ACAA,o8B;;;;;;;;;;;ACAA,uW;;;;;;;;;;;ACAA,+V;;;;;;;;;;;ACAA,mpB;;;;;;;;;;;ACAA,4O;;;;;;;;;;;ACAA,qlC;;;;;;;;;;;ACAA,+qB;;;;;;;;;;;ACAA,mU;;;;;;;;;;;ACAA,+f;;;;;;;;;;;ACAA,krB;;;;;;;;;;;;ACAA;AAAA;AAAA,iDAAiD;AACjD,+EAA+E;AAE/E;IAoBE,qBAAY,SAAqB;QAArB,yCAAqB;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IACM,2BAAK,GAAZ,UACE,MAAW,EACX,OAAmB,EACnB,SAAqB,EACrB,KAAkB;QAFlB,wCAAmB;QACnB,yCAAqB;QACrB,iCAAiB,CAAC;QAElB,IAAI,MAAM,CAAC;QAEX,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;QACd,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SAC5B;QAED,yEAAyE;QACzE,oEAAoE;QACpE,8EAA8E;QAC9E,4EAA4E;QAC5E,UAAU;QAEV,OAAO,OAAO,OAAO,KAAK,UAAU;YAClC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,GAAG;gBAC1B,IAAI,CAAC,EACH,CAAC,EACD,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBACtC,KAAK,CAAC,IAAI,KAAK,EAAE;wBACf,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;4BAClD,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BACnB,IAAI,CAAC,KAAK,SAAS,EAAE;gCACnB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;6BACd;iCAAM;gCACL,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;6BACjB;yBACF;qBACF;iBACF;gBACD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACtB,CAAC,CAAC,MAAM,CAAC;IACb,CAAC;IACO,2BAAK,GAAb,UAAc,CAAS;QACrB,sCAAsC;QACtC,IAAI,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,KAAK,CAAC;IACd,CAAC;IACO,0BAAI,GAAZ,UAAa,CAAa;QAAb,4BAAa;QACxB,8EAA8E;QAC9E,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;SACjE;QACD,kEAAkE;QAClE,2BAA2B;QAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACb,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IACO,0BAAI,GAAZ;QACE,sDAAsD;QACtD,wCAAwC;QACxC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IACO,6BAAO,GAAf;QACE,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IACO,gCAAU,GAAlB;QACE,4EAA4E;QAC5E,4EAA4E;QAC5E,gDAAgD;QAChD,gCAAgC;QAChC,gGAAgG;QAChG,8DAA8D;QAC9D,8EAA8E;QAC9E,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;QAElB,gDAAgD;QAChD,IACE,IAAI,CAAC,EAAE,KAAK,GAAG;YACf,IAAI,CAAC,EAAE,KAAK,GAAG;YACf,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;YAChC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAChC;YACA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;SAC9B;QAED,4CAA4C;QAC5C,OACE,IAAI,CAAC,IAAI,EAAE;YACX,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG;gBACd,IAAI,CAAC,EAAE,KAAK,GAAG;gBACf,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC;gBAClC,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC;gBAClC,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EACrC;YACA,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;SAChB;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IACO,4BAAM,GAAd;QACE,wBAAwB;QAExB,IAAI,MAAM,EACR,IAAI,GAAG,EAAE,EACT,MAAM,GAAG,EAAE,EACX,IAAI,GAAG,EAAE,CAAC;QAEZ,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YACtC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACpB;QAED,2DAA2D;QAC3D,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YACnB,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;gBAC/C,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;aAC1C;YACD,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;SACxC;QAED,kBAAkB;QAClB,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YACnB,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBAClB,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;aACvC;YACD,kCAAkC;YAClC,OAAO,MAAM,CAAC;SACf;QAED,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YACnB,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;gBACtC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,IAAI,GAAG,EAAE,CAAC;aACX;iBAAM,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE;gBAC3C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;aAC7B;SACF;QAED,QAAQ,IAAI,EAAE;YACZ,KAAK,EAAE;gBACL,OAAO,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE;oBACvC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,IAAI,EAAE,CAAC;iBACb;gBACD,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;oBACnB,MAAM,IAAI,GAAG,CAAC;oBACd,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE;wBACtD,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;qBACnB;iBACF;gBACD,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;oBACtC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACZ,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;wBACtC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;wBAClB,IAAI,CAAC,IAAI,EAAE,CAAC;qBACb;oBACD,OAAO,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE;wBACvC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;wBAClB,IAAI,CAAC,IAAI,EAAE,CAAC;qBACb;iBACF;gBACD,MAAM;YACR,KAAK,EAAE;gBACL,OACE,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC;oBAClC,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC;oBAClC,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAClC;oBACA,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,IAAI,EAAE,CAAC;iBACb;gBACD,MAAM;SACT;QAED,IAAI,IAAI,KAAK,GAAG,EAAE;YAChB,MAAM,GAAG,CAAC,MAAM,CAAC;SAClB;aAAM;YACL,MAAM,GAAG,CAAC,MAAM,CAAC;SAClB;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SAC1B;aAAM;YACL,OAAO,MAAM,CAAC;SACf;IACH,CAAC;IACO,4BAAM,GAAd;QACE,wBAAwB;QAExB,IAAI,GAAG,EACL,CAAC,EACD,MAAM,GAAG,EAAE,EACX,KAAK,EAAE,+BAA+B;QACtC,KAAK,CAAC;QAER,4EAA4E;QAE5E,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YACtC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE;gBAClB,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,EAAE;oBACrB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACZ,OAAO,MAAM,CAAC;iBACf;qBAAM,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE;oBAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;oBACZ,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;wBACnB,KAAK,GAAG,CAAC,CAAC;wBACV,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;4BACzB,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;4BAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gCAClB,MAAM;6BACP;4BACD,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC;yBAC1B;wBACD,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;qBACtC;yBAAM,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE;wBAC3B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;4BACxB,IAAI,CAAC,IAAI,EAAE,CAAC;yBACb;qBACF;yBAAM,IAAI,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE;wBAC3D,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACxC;yBAAM;wBACL,MAAM;qBACP;iBACF;qBAAM,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE;oBAC3B,uCAAuC;oBACvC,4CAA4C;oBAC5C,iDAAiD;oBACjD,2BAA2B;oBAC3B,MAAM;iBACP;qBAAM;oBACL,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;iBACnB;aACF;SACF;QACD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IACO,mCAAa,GAArB;QACE,6EAA6E;QAC7E,4EAA4E;QAC5E,8EAA8E;QAE9E,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;SACrC;QAED,GAAG;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE;gBACxC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,OAAO;aACR;SACF,QAAQ,IAAI,CAAC,EAAE,EAAE;IACpB,CAAC;IACO,kCAAY,GAApB;QACE,8EAA8E;QAC9E,iEAAiE;QACjE,4EAA4E;QAC5E,0EAA0E;QAE1E,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACnC;QAED,GAAG;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;oBACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACf,OAAO;iBACR;aACF;SACF,QAAQ,IAAI,CAAC,EAAE,EAAE;QAElB,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC3C,CAAC;IACO,6BAAO,GAAf;QACE,uEAAuE;QACvE,4CAA4C;QAE5C,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEf,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YACnB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;aAAM,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACpC;IACH,CAAC;IACO,2BAAK,GAAb;QACE,gCAAgC;QAChC,mEAAmE;QACnE,4EAA4E;QAC5E,uEAAuE;QAEvE,OAAO,IAAI,CAAC,EAAE,EAAE;YACd,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;gBACnB,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;iBAAM,IAAI,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;aACb;iBAAM;gBACL,OAAO;aACR;SACF;IACH,CAAC;IACO,0BAAI,GAAZ;QACE,wBAAwB;QAExB,QAAQ,IAAI,CAAC,EAAE,EAAE;YACf,KAAK,GAAG;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,KAAK,GAAG;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,OAAO,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,KAAK,GAAG;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,OAAO,QAAQ,CAAC;YAClB,KAAK,GAAG;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,OAAO,GAAG,CAAC;SACd;QACD,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IAC7C,CAAC;IACO,2BAAK,GAAb;QACE,wBAAwB;QAExB,IAAI,KAAK,GAAG,EAAE,CAAC;QAEf,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,EAAE,EAAE;gBACd,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;oBACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACf,OAAO,KAAK,CAAC,CAAC,0BAA0B;iBACzC;gBACD,uDAAuD;gBACvD,yCAAyC;gBACzC,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;oBACnB,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;iBACrC;qBAAM;oBACL,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;iBAC1B;gBACD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,sDAAsD;gBACtD,2BAA2B;gBAC3B,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;oBACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACf,OAAO,KAAK,CAAC;iBACd;gBACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;SACF;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC;IACO,4BAAM,GAAd;QACE,yBAAyB;QAEzB,IAAI,GAAG,EACL,KAAK,EACL,eAAe,GAAG,IAAI,EACtB,MAAM,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;SAC3D;QACD,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC,EAAE,EAAE;gBACd,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;oBACnB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;wBACtB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;qBAC9C;oBACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACf,OAAO,MAAM,CAAC,CAAC,2BAA2B;iBAC3C;gBAED,qDAAqD;gBACrD,wBAAwB;gBACxB,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;oBACtC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;iBACrB;qBAAM;oBACL,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;iBACzB;gBAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;oBACtB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG;wBACtC,KAAK,EAAE,KAAK;wBACZ,UAAU,EAAE,IAAI,CAAC,EAAE;qBACpB,CAAC;iBACH;gBACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;oBACtB,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;oBACpB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACvD,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;iBACnD;gBACD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,wDAAwD;gBACxD,yBAAyB;gBACzB,IAAI,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE;oBACnB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;wBACtB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;wBACjD,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;qBAC7C;oBACD,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;wBACtB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;qBACpD;oBACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACf,OAAO,MAAM,CAAC;iBACf;gBACD,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;oBACtB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjD,IAAI,CAAC,eAAe,EAAE;wBACpB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;qBAC7C;iBACF;gBACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,eAAe,GAAG,KAAK,CAAC;aACzB;SACF;QACD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IACO,2BAAK,GAAb;QACE,2EAA2E;QAC3E,aAAa;QAEb,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,QAAQ,IAAI,CAAC,EAAE,EAAE;YACf,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB;gBACE,OAAO,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACzE;IACH,CAAC;IAMM,+BAAS,GAAhB,UAAiB,GAAQ,EAAE,QAAoB,EAAE,KAAiB;QAAvC,0CAAoB;QAAE,oCAAiB;QAChE,IACE,QAAQ;YACR,CAAC,OAAO,QAAQ,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAC3D;YACA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC5D;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,kDAAkD;QAClD,wCAAwC;QACxC,uCAAuC;QACvC,IAAI,cAAc,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QACjC,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,OAAO,IAAI,CAAC,2BAA2B,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;SACnE;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IACO,+BAAS,GAAjB,UAAkB,KAAU;QAC1B,IAAI,KAAK,EAAE;YACT,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,OAAO,KAAK,CAAC;aACd;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,EAAE;gBAClD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;aAC1C;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACO,iDAA2B,GAAnC,UACE,MAAW,EACX,GAAQ,EACR,UAAmB;QAEnB,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAExB,6DAA6D;QAC7D,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE;YAC/D,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;SACxB;QAED,wGAAwG;QACxG,qGAAqG;QACrG,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;YACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SAC/C;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACxB,IACE,UAAU;gBACV,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAC/B;gBACA,OAAO,KAAK,CAAC;aACd;iBAAM;gBACL,OAAO,SAAS,CAAC;aAClB;SACF;aAAM;YACL,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAEO,gCAAU,GAAlB,UAAmB,IAAS;QAC1B,OAAO,CACL,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;YAC5B,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;YAC5B,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;YAC5B,IAAI,KAAK,GAAG;YACZ,IAAI,KAAK,GAAG,CACb,CAAC;IACJ,CAAC;IAEO,iCAAW,GAAnB,UAAoB,IAAS;QAC3B,OAAO,CACL,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;YAC5B,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;YAC5B,IAAI,KAAK,GAAG;YACZ,IAAI,KAAK,GAAG,CACb,CAAC;IACJ,CAAC;IAEO,4BAAM,GAAd,UAAe,GAAQ;QACrB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,GAAG,CAAC,EACP,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACtB,OAAO,CAAC,GAAG,MAAM,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC5B,OAAO,KAAK,CAAC;aACd;YACD,CAAC,EAAE,CAAC;SACL;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,YAAY;IACJ,6BAAO,GAAf,UAAgB,GAAQ;QACtB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC3B;aAAM;YACL,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC;SACjE;IACH,CAAC;IAEO,4BAAM,GAAd,UAAe,GAAQ;QACrB,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC;IACjE,CAAC;IAEO,2BAAK,GAAb,UAAc,GAAQ;QACpB,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC;IAChD,CAAC;IAEO,sCAAgB,GAAxB,UAAyB,GAAQ;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAC5B,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;aAC9D;SACF;IACH,CAAC;IACO,gCAAU,GAAlB,UAAmB,GAAW,EAAE,GAAW,EAAE,SAA0B;QAA1B,6CAA0B;QACrE,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,EAAE,CAAC;SACX;QACD,oCAAoC;QACpC,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE;YACnB,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC5B;QAED,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,CAAC;SACf;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAmBO,kCAAY,GAApB,UAAqB,GAAW;QAC9B,4EAA4E;QAC5E,uEAAuE;QACvE,2EAA2E;QAC3E,aAAa;QACb,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;QACpC,OAAO,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;YACpC,CAAC,CAAC,GAAG;gBACD,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,UAAS,CAAC;oBAC3C,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ;wBAC1B,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC;gBACF,GAAG;YACP,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACtB,CAAC;IACD,MAAM;IAEE,uCAAiB,GAAzB,UAA0B,MAAW,EAAE,GAAQ,EAAE,UAAmB;QAClE,IAAI,MAAM,EAAE,GAAG,CAAC;QAEhB,kCAAkC;QAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAEzE,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YACtC,gBAAgB;YAChB,oDAAoD;YACpD,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;SAC/B;QACD,QAAQ,OAAO,QAAQ,EAAE;YACvB,KAAK,SAAS;gBACZ,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAE7B,KAAK,QAAQ;gBACX,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBAC1C,OAAO,MAAM,CAAC;iBACf;gBACD,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAE7B,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEhD,KAAK,QAAQ;gBACX,IAAI,QAAQ,KAAK,IAAI,EAAE;oBACrB,OAAO,MAAM,CAAC;iBACf;qBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBACjC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBAChC,MAAM,GAAG,GAAG,CAAC;oBACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACxC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;wBACjD,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAChE,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;4BAC9C,MAAM,IAAI,MAAM,CAAC;yBAClB;6BAAM;4BACL,MAAM,IAAI,GAAG,CAAC;yBACf;wBACD,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC3B,MAAM,IAAI,GAAG,CAAC;yBACf;6BAAM,IAAI,IAAI,CAAC,SAAS,EAAE;4BACzB,MAAM,IAAI,IAAI,CAAC;yBAChB;qBACF;oBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;oBACpB,MAAM;wBACJ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;iBACrE;qBAAM;oBACL,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBAChC,MAAM,GAAG,GAAG,CAAC;oBACb,IAAI,QAAQ,GAAG,KAAK,CAAC;oBACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC7B,KAAK,IAAI,IAAI,IAAI,QAAQ,EAAE;wBACzB,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;4BACjC,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;4BAC1D,UAAU,GAAG,KAAK,CAAC;4BACnB,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,EAAE;gCAClD,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gCAChE,QAAQ,GAAG,IAAI,CAAC;gCAChB,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oCAC7B,CAAC,CAAC,IAAI;oCACN,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gCAC5B,MAAM;oCACJ,OAAO,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;6BAC7D;yBACF;qBACF;oBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;oBACpB,IAAI,QAAQ,EAAE;wBACZ,MAAM;4BACJ,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gCACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gCACrD,GAAG,CAAC;qBACP;yBAAM;wBACL,MAAM,GAAG,IAAI,CAAC;qBACf;iBACF;gBACD,OAAO,MAAM,CAAC;YAChB;gBACE,4CAA4C;gBAC5C,OAAO,SAAS,CAAC;SACpB;IACH,CAAC;IAvwBa,wBAAY,GAAG,KAAK,CAAC;IACpB,mBAAO,GAAG;QACvB,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,EAAE;QACR,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;KACR,CAAC;IACa,cAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAkoB1E,gDAAgD;IAChD,8GAA8G;IAC9G,QAAQ;IACR,2BAA2B;IACZ,cAAE,GAAG,0GAA0G,CAAC;IAC/H,2BAA2B;IACZ,qBAAS,GAAG,0HAA0H,CAAC;IACvI,gBAAI,GAAG;QACpB,mCAAmC;QACnC,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,MAAM;KACb,CAAC;IAyGJ,kBAAC;CAAA;AAzwBuB;;;;;;;;;;;;;ACHxB;AAAA;AAAA,6DAA6D;AAC7D,8EAA8E;AAEvE,IAAI,SAAS,GAAG;IACrB,mBAAmB;IACnB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,gBAAgB,EAAE,uCAAuC;QACzD,mBAAmB,EAAE,6EAA6E;QAClG,YAAY,EAAE,+CAA+C;QAC7D,YAAY,EAAE,oDAAoD;QAClE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,WAAW;QACtB,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,cAAc;QAC3B,cAAc,EAAE,iBAAiB;QACjC,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,kFAAkF;KAC5F;IACD,iBAAiB;IACjB,EAAE,EAAE;QACF,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,sBAAsB;QAC9B,cAAc,EAAE,wBAAwB;QACxC,aAAa,EAAE,gBAAgB;QAC/B,YAAY,EAAE,eAAe;QAC7B,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,eAAe;QAC7B,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,cAAc;KAC5B;IACD,8BAA8B;IAC9B,EAAE,EAAE;QACF,aAAa,EAAE,eAAe;QAC9B,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,eAAe,EAAE,eAAe;QAChC,cAAc,EAAE,iBAAiB;QACjC,qBAAqB,EAAE,sBAAsB;QAC7C,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,YAAY;QACvB,YAAY,EAAE,iBAAiB;QAC/B,YAAY,EAAE,aAAa;QAC3B,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE,MAAM;QACpB,aAAa,EAAE,OAAO;QACtB,gBAAgB,EAAE,UAAU;QAC5B,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,cAAc;QAC1B,SAAS,EAAE,qBAAqB;QAChC,QAAQ,EAAE,oBAAoB;QAC9B,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,MAAM;QACnB,eAAe,EAAE,UAAU;QAC3B,YAAY,EAAE,OAAO;QACrB,eAAe,EAAE,MAAM;QACvB,UAAU,EAAE,SAAS;QACrB,cAAc,EAAE,SAAS;QACzB,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,kBAAkB;QAChC,eAAe,EAAE,sBAAsB;QACvC,eAAe,EAAE,gBAAgB;QACjC,aAAa,EAAE,wBAAwB;QACvC,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE,aAAa;QACzB,iBAAiB,EAAE,aAAa;QAChC,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,aAAa;QAC7B,cAAc,EAAE,aAAa;QAC7B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,iBAAiB;QAC9B,eAAe,EAAE,WAAW;QAC5B,eAAe,EAAE,WAAW;QAC5B,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,6BAA6B;QAC1C,UAAU,EAAE,4BAA4B;QACxC,YAAY,EAAE,sBAAsB;QACpC,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,qBAAqB;QACxC,oBAAoB,EAAE,wBAAwB;QAC9C,OAAO,EAAE,SAAS;QAClB,eAAe,EAAE,YAAY;QAC7B,mCAAmC,EAAE,mBAAmB;QACxD,sBAAsB,EAAE,SAAS;QACjC,qBAAqB,EAAE,kBAAkB;QACzC,mBAAmB,EAAE,sBAAsB;QAC3C,yBAAyB,EAAE,YAAY;QACvC,qBAAqB,EAAE,kBAAkB;QACzC,mBAAmB,EAAE,MAAM;QAC3B,WAAW,EAAE,sBAAsB;QACnC,aAAa,EAAE,iBAAiB;QAChC,kBAAkB,EAAE,UAAU;QAC9B,iBAAiB,EAAE,SAAS;QAC5B,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,eAAe;QAC5B,YAAY,EAAE,cAAc;QAC5B,mBAAmB,EAAE,eAAe;QACpC,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,OAAO;QACd,mBAAmB,EAAE,OAAO;QAC5B,SAAS,EAAE,qCAAqC;QAChD,4BAA4B,EAAE,mBAAmB;QACjD,oBAAoB,EAAE,WAAW;QACjC,sBAAsB,EAAE,8BAA8B;QACtD,yBAAyB,EAAE,aAAa;QACxC,8BAA8B,EAAE,mBAAmB;QACnD,uBAAuB,EAAE,WAAW;QACpC,oBAAoB,EAAE,qDAAqD;QAC3E,4BAA4B,EAAE,eAAe;QAC7C,8BAA8B,EAAE,iBAAiB;QACjD,iCAAiC,EAAE,+BAA+B;QAClE,sBAAsB,EAAE,gBAAgB;QACxC,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,WAAW;QACtB,cAAc,EAAE,cAAc;QAC9B,UAAU,EAAE,gBAAgB;QAC5B,eAAe,EAAE,4BAA4B;QAC7C,gBAAgB,EAAE,wCAAwC;QAC1D,iBAAiB,EAAE,kFAAkF;QACrG,kBAAkB,EAAE,SAAS;QAC7B,qBAAqB,EAAE,QAAQ;QAC/B,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,OAAO;QACrB,EAAE,EAAE;YACF,UAAU,EAAE,cAAc;YAC1B,SAAS,EAAE,oDAAoD;YAC/D,mBAAmB,EAAE,kBAAkB;YACvC,eAAe,EAAE,uBAAuB;YACxC,oBAAoB,EAAE,mBAAmB;YACzC,gBAAgB,EAAE,wBAAwB;YAC1C,uBAAuB,EAAE,sBAAsB;YAC/C,mBAAmB,EAAE,2BAA2B;YAChD,oBAAoB,EAAE,wBAAwB;YAC9C,qBAAqB,EAAE,oBAAoB;YAC3C,iBAAiB,EAAE,yBAAyB;YAC5C,kBAAkB,EAAE,sBAAsB;YAC1C,oBAAoB,EAAE,iBAAiB;YACvC,oBAAoB,EAAE,YAAY;YAClC,qBAAqB,EAAE,aAAa;YACpC,gBAAgB,EAAE,kBAAkB;YACpC,yBAAyB,EAAE,gBAAgB;YAC3C,4BAA4B,EAAE,qCAAqC;YACnE,0BAA0B,EAAE,4FAA4F;YACxH,2BAA2B,EAAE,6FAA6F;YAC1H,uBAAuB,EAAE,0HAA0H;YACnJ,8BAA8B,EAAE,gGAAgG;YAChI,0BAA0B,EAAE,8FAA8F;YAC1H,2BAA2B,EAAE,mEAAmE;YAChG,2BAA2B,EAAE,oHAAoH;YACjJ,2BAA2B,EAAE,iKAAiK;YAC9L,4BAA4B,EAAE,iMAAiM;YAC/N,uBAAuB,EAAE,+FAA+F;YACxH,gCAAgC,EAAE,2JAA2J;YAC7L,mCAAmC,EAAE,mHAAmH;YACxJ,kBAAkB,EAAE,qCAAqC;YACzD,uBAAuB,EAAE,UAAU;YACnC,mBAAmB,EAAE,uBAAuB;YAC5C,oBAAoB,EAAE,wBAAwB;YAC9C,gBAAgB,EAAE,uBAAuB;YACzC,uBAAuB,EAAE,2BAA2B;YACpD,mBAAmB,EAAE,0BAA0B;YAC/C,oBAAoB,EAAE,4BAA4B;YAClD,qBAAqB,EAAE,yCAAyC;YAChE,iBAAiB,EAAE,wCAAwC;YAC3D,kBAAkB,EAAE,0CAA0C;YAC9D,oBAAoB,EAAE,0BAA0B;YAChD,oBAAoB,EAAE,kCAAkC;YACxD,qBAAqB,EAAE,iDAAiD;YACxE,gBAAgB,EAAE,iCAAiC;YACnD,0BAA0B,EAAE,uBAAuB;YACnD,0BAA0B,EAAE,wCAAwC;YACpE,4BAA4B,EAAE,4CAA4C;YAC1E,gBAAgB,EAAE,eAAe;YACjC,kBAAkB,EAAE,kBAAkB;YACtC,UAAU,EAAE,cAAc;YAC1B,OAAO,EAAE,WAAW;YACpB,qBAAqB,EAAE,qBAAqB;YAC5C,kBAAkB,EAAE,kBAAkB;YACtC,YAAY,EAAE,eAAe;YAC7B,YAAY,EAAE,YAAY;YAC1B,qBAAqB,EAAE,kBAAkB;YACzC,iBAAiB,EAAE,8DAA8D;YACjF,aAAa,EAAE,kCAAkC;YACjD,aAAa,EAAE,yCAAyC;YACxD,eAAe,EAAE,EAAE;YACnB,YAAY,EAAE,EAAE;SACjB;KACF;IACD,mBAAmB;IACnB,EAAE,EAAE;QACF,KAAK,EAAE,OAAO;QACd,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,yBAAyB;QAClC,UAAU,EAAE,6BAA6B;QACzC,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,OAAO;QACjB,YAAY,EAAE,YAAY;QAC1B,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE,iBAAiB;QAC9B,kBAAkB,EAAE,iBAAiB;QACrC,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,cAAc;QACzB,uBAAuB,EAAE,2BAA2B;QACpD,0BAA0B,EAAE,kDAAkD;QAC9E,oBAAoB,EAAE,gEAAgE;QACtF,SAAS,EAAE,YAAY;QACvB,WAAW,EAAE,kBAAkB;QAC/B,iBAAiB,EAAE,2BAA2B;QAC9C,oBAAoB,EAAE,0BAA0B;QAChD,uBAAuB,EAAE,oBAAoB;QAC7C,mBAAmB,EAAE,gBAAgB;QACrC,oBAAoB,EAAE,iBAAiB;QACvC,2BAA2B,EAAE,+BAA+B;QAC5D,cAAc,EAAE,sLAAsL;QACtM,aAAa,EAAE,oDAAoD;QACnE,iBAAiB,EAAE,aAAa;QAChC,mBAAmB,EAAE,eAAe;QACpC,QAAQ,EAAE,iDAAiD;QAC3D,cAAc,EAAE,qBAAqB;QACrC,qBAAqB,EAAE,+CAA+C;QACtE,yBAAyB,EAAE,8CAA8C;QACzE,eAAe,EAAE,sBAAsB;QACvC,kBAAkB,EAAE,6BAA6B;QACjD,uBAAuB,EAAE,4BAA4B;QACrD,WAAW,EAAE,8BAA8B;QAC3C,qBAAqB,EAAE,gCAAgC;QACvD,gBAAgB,EAAE,cAAc;QAChC,iBAAiB,EAAE,qBAAqB;QACxC,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,oBAAoB;QAC/B,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE,gBAAgB;QAC1B,GAAG,EAAE,aAAa;QAClB,IAAI,EAAE,iCAAiC;QACvC,SAAS,EAAE,2CAA2C;QACtD,YAAY,EAAE;YACZ,SAAS,EAAE,0CAA0C;SACtD;QACD,SAAS,EAAE,iDAAiD;QAC5D,aAAa,EAAE,8CAA8C;QAC7D,kBAAkB,EAAE,sBAAsB;QAC1C,gBAAgB,EAAE,OAAO;QACzB,sBAAsB,EAAE,cAAc;QACtC,oBAAoB,EAAE,YAAY;QAClC,sBAAsB,EAAE,aAAa;QACrC,4BAA4B,EAAE,aAAa;QAC3C,0BAA0B,EAAE,aAAa;QACzC,aAAa,EAAE,wBAAwB;QACvC,SAAS,EAAE,mBAAmB;QAC9B,YAAY,EAAE,uBAAuB;QACrC,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,6BAA6B;QAChD,aAAa,EAAE,wBAAwB;QACvC,UAAU,EAAE,wCAAwC;QACpD,UAAU,EAAE,wCAAwC;QACpD,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,cAAc;QACxB,YAAY,EAAE,oBAAoB;QAClC,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,UAAU;QACtB,gBAAgB,EAAE,6BAA6B;QAC/C,iBAAiB,EAAE,4BAA4B;QAC/C,gBAAgB,EAAE,oCAAoC;QACtD,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE,mBAAmB;QAChC,eAAe,EAAE,2CAA2C;QAC5D,OAAO,EAAE,8BAA8B;QACvC,WAAW,EAAE,cAAc;QAC3B,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,gBAAgB;QAC9B,cAAc,EAAE,yBAAyB;QACzC,UAAU,EAAE,qBAAqB;QACjC,aAAa,EAAE,wBAAwB;QACvC,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE,oBAAoB;QAC7B,QAAQ,EAAE,WAAW;QACrB,kBAAkB,EAAE,gCAAgC;QACpD,kBAAkB,EAAE,gCAAgC;QACpD,SAAS,EAAE,YAAY;QACvB,cAAc,EAAE,oBAAoB;QACpC,YAAY,EAAE,gBAAgB;QAC9B,eAAe,EAAE,eAAe;QAChC,iBAAiB,EAAE,sBAAsB;QACzC,YAAY,EAAE,WAAW;QACzB,SAAS,EAAE,gCAAgC;QAC3C,eAAe,EAAE,OAAO;QACxB,cAAc,EAAE,MAAM;QACtB,GAAG,EAAE,KAAK;QACV,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,eAAe;QAC7B,sBAAsB,EAAE,oDAAoD;QAC5E,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,8BAA8B;QACxC,QAAQ,EAAE,qBAAqB;QAC/B,YAAY,EAAE,mBAAmB;QACjC,iBAAiB,EAAE,6BAA6B;QAChD,SAAS,EAAE,gBAAgB;QAC3B,mBAAmB,EAAE,uBAAuB;QAC5C,MAAM,EAAE,iBAAiB;QACzB,SAAS,EAAE,oBAAoB;QAC/B,oBAAoB,EAAE,iCAAiC;QACvD,mBAAmB,EAAE,gCAAgC;QACrD,IAAI,EAAE,uBAAuB;QAC7B,oBAAoB,EAAE,wBAAwB;QAC9C,UAAU,EAAE,aAAa;QACzB,oBAAoB,EAAE,yCAAyC;QAC/D,oBAAoB,EAAE,4CAA4C;QAClE,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,mBAAmB;QACpC,YAAY,EAAE,2BAA2B;QACzC,YAAY,EAAE,uBAAuB;QACrC,YAAY,EAAE,6BAA6B;QAC3C,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,yBAAyB;QACnC,eAAe,EAAE,0BAA0B;QAC3C,qBAAqB,EAAE,6BAA6B;QACpD,cAAc,EAAE,+BAA+B;QAC/C,kBAAkB,EAAE,4BAA4B;QAChD,iBAAiB,EAAE,+BAA+B;QAClD,mBAAmB,EAAE,wCAAwC;QAC7D,eAAe,EAAE,uBAAuB;QACxC,qBAAqB,EAAE,yBAAyB;QAChD,YAAY,EAAE,oBAAoB;QAClC,kBAAkB,EAAE,gCAAgC;QACpD,mBAAmB,EAAE,oBAAoB;QACzC,qBAAqB,EAAE,gEAAgE;QACvF,qBAAqB,EAAE,wBAAwB;QAC/C,2BAA2B,EAAE,oCAAoC;QACjE,cAAc,EAAE,2BAA2B;QAC3C,eAAe,EAAE,8CAA8C;QAC/D,mBAAmB,EAAE,4CAA4C;QACjE,KAAK,EAAE;YACL,WAAW,EAAE,uCAAuC;YACpD,UAAU,EAAE,sCAAsC;SACnD;QACD,IAAI,EAAE;YACJ,eAAe,EAAE,4CAA4C;SAC9D;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,aAAa;SACpB;QACD,cAAc,EAAE,gBAAgB;QAChC,kBAAkB,EAAE,YAAY;QAChC,UAAU,EAAE,oBAAoB;QAChC,aAAa,EAAE,qBAAqB;QACpC,gBAAgB,EAAE,uBAAuB;QACzC,aAAa,EAAE,oBAAoB;QACnC,YAAY,EAAE,uBAAuB;QACrC,eAAe,EAAE,0BAA0B;QAC3C,YAAY,EAAE,+BAA+B;QAC7C,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,cAAc;QAC1B,YAAY,EAAE,mBAAmB;QACjC,eAAe,EAAE,qBAAqB;QACtC,oBAAoB,EAAE,yBAAyB;QAC/C,uBAAuB,EAAE,gEAAgE;QACzF,aAAa,EAAE,qBAAqB;QACpC,aAAa,EAAE,qBAAqB;QACpC,cAAc,EAAE,sBAAsB;QACtC,cAAc,EAAE,sBAAsB;QACtC,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,gCAAgC;QAC3C,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,oBAAoB;QAC3B,eAAe,EAAE;YACf,IAAI,EAAE,eAAe;YACrB,UAAU,EAAE,uBAAuB;SACpC;QACD,SAAS,EAAE,gBAAgB;QAC3B,SAAS,EAAE,YAAY;QACvB,eAAe,EAAE,kBAAkB;QACnC,iBAAiB,EAAE,2BAA2B;QAC9C,aAAa,EAAE,UAAU;QACzB,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,qCAAqC;QAC3C,mBAAmB,EAAE,kBAAkB;QACvC,aAAa,EAAE,uCAAuC;QACtD,eAAe,EAAE,wCAAwC;QACzD,eAAe,EAAE,uCAAuC;QACxD,cAAc,EAAE,4BAA4B;QAC5C,iBAAiB,EAAE,uCAAuC;QAC1D,eAAe,EAAE,gBAAgB;QACjC,aAAa,EAAE,iBAAiB;QAChC,wBAAwB,EAAE,aAAa;QACvC,mBAAmB,EAAE,2DAA2D;QAChF,aAAa,EAAE,6BAA6B;QAC5C,wBAAwB,EAAE,qCAAqC;QAC/D,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE,mBAAmB;QAChC,YAAY,EAAE,mBAAmB;QACjC,SAAS,EAAE,gBAAgB;QAC3B,UAAU,EAAE,iBAAiB;QAC7B,UAAU,EAAE,uBAAuB;QACnC,YAAY,EAAE,qBAAqB;QACnC,MAAM,EAAE,kBAAkB;QAC1B,qBAAqB,EAAE,2BAA2B;QAClD,qBAAqB,EAAE,2BAA2B;QAClD,WAAW,EAAE,6BAA6B;QAC1C,aAAa,EAAE,sBAAsB;QACrC,kBAAkB,EAAE,gBAAgB;QACpC,aAAa,EAAE,qBAAqB;QACpC,aAAa,EAAE,iCAAiC;QAChD,qBAAqB,EAAE,uBAAuB;QAC9C,eAAe,EAAE,uBAAuB;QACxC,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,mBAAmB;QAChC,aAAa,EAAE,sBAAsB;QACrC,iBAAiB,EAAE,sBAAsB;QACzC,YAAY,EAAE;YACZ,aAAa,EAAE,wBAAwB;SACxC;QACD,UAAU,EAAE,qBAAqB;QACjC,aAAa,EAAE,qBAAqB;QACpC,aAAa,EAAE,qBAAqB;QACpC,WAAW,EAAE,0BAA0B;QACvC,mBAAmB,EAAE,sBAAsB;QAC3C,aAAa,EAAE,gBAAgB;QAC/B,aAAa,EAAE,+BAA+B;QAC9C,aAAa,EAAE,2BAA2B;QAC1C,mBAAmB,EAAE,mBAAmB;QACxC,qBAAqB,EAAE,yBAAyB;QAChD,yBAAyB,EAAE,8BAA8B;QACzD,eAAe,EAAE,wCAAwC;QACzD,kBAAkB,EAAE,mCAAmC;QACvD,UAAU,EAAE,oBAAoB;QAChC,kBAAkB,EAAE,6CAA6C;QACjE,UAAU,EAAE,sBAAsB;QAClC,QAAQ,EAAE,wCAAwC;QAClD,QAAQ,EAAE,wCAAwC;QAClD,KAAK,EAAE,gCAAgC;QACvC,UAAU,EAAE,qBAAqB;QACjC,gBAAgB,EAAE,2BAA2B;QAC7C,cAAc,EAAE,+CAA+C;QAC/D,aAAa,EAAE,2CAA2C;QAC1D,SAAS,EAAE,gBAAgB;QAC3B,UAAU,EAAE,iBAAiB;QAC7B,YAAY,EAAE,0CAA0C;QACxD,YAAY,EAAE,yCAAyC;QACvD,cAAc,EAAE,iCAAiC;QACjD,mBAAmB,EAAE,wCAAwC;QAC7D,kBAAkB,EAAE,0BAA0B;QAC9C,eAAe,EAAE,uBAAuB;QACxC,UAAU,EAAE,mBAAmB;QAC/B,SAAS,EAAE,qCAAqC;QAChD,UAAU,EAAE,sCAAsC;QAClD,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,aAAa;QACvB,aAAa,EAAE,qBAAqB;QACpC,IAAI,EAAE,4BAA4B;QAClC,sBAAsB,EAAE,oDAAoD;QAC5E,mBAAmB,EAAE,0CAA0C;QAC/D,uBAAuB,EAAE,wBAAwB;QACjD,eAAe,EAAE,uBAAuB;QACxC,kBAAkB,EAAE,0BAA0B;QAC9C,qCAAqC,EAAE,6CAA6C;QACpF,SAAS,EAAE,WAAW;QACtB,aAAa,EAAE,eAAe;QAC9B,cAAc,EAAE,qBAAqB;QACrC,KAAK,EAAE,oBAAoB;QAC3B,aAAa,EAAE,gBAAgB;QAC/B,iBAAiB,EAAE,gBAAgB;QACnC,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE;YACT,IAAI,EAAE,UAAU;SACjB;QACD,YAAY,EAAE,eAAe;QAC7B,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,gBAAgB;QAC5B,aAAa,EAAE;YACb,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,YAAY;YACjB,MAAM,EAAE,eAAe;SACxB;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,YAAY;YACvB,QAAQ,EAAE,aAAa;YACvB,UAAU,EAAE,aAAa;YACzB,UAAU,EAAE,aAAa;YACzB,YAAY,EAAE,gCAAgC;YAC9C,aAAa,EAAE,iBAAiB;YAChC,iBAAiB,EAAE,aAAa;YAChC,SAAS,EAAE,WAAW;YACtB,UAAU,EAAE,YAAY;YACxB,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,YAAY;YACnB,gBAAgB,EAAE,mBAAmB;YACrC,QAAQ,EAAE,UAAU;YACpB,aAAa,EAAE,gBAAgB;YAC/B,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,YAAY;YACxB,KAAK,EAAE,YAAY;YACnB,eAAe,EAAE,iBAAiB;YAClC,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,YAAY;YACxB,MAAM,EAAE,QAAQ;SACjB;QACD,YAAY,EAAE,qBAAqB;QACnC,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,wBAAwB;QAC1C,eAAe,EAAE,2BAA2B;QAC5C,eAAe,EAAE,wBAAwB;QACzC,YAAY,EAAE,qBAAqB;QACnC,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE;YACL,MAAM,EAAE,mBAAmB;SAC5B;QACD,WAAW,EAAE,mBAAmB;QAChC,uBAAuB,EAAE,uCAAuC;QAChE,yBAAyB,EAAE,yCAAyC;QACpE,aAAa,EAAE,0BAA0B;QACzC,WAAW,EAAE,uCAAuC;QACpD,aAAa,EAAE,yBAAyB;QACxC,uBAAuB,EAAE,4BAA4B;QACrD,kBAAkB,EAAE,yHAAyH;QAC7I,SAAS,EAAE,KAAK;QAChB,uBAAuB,EAAE,oBAAoB;QAC7C,2BAA2B,EAAE,uBAAuB;QACpD,mBAAmB,EAAE,iCAAiC;QACtD,aAAa,EAAE,wBAAwB;QACvC,YAAY,EAAE,QAAQ;QACtB,gBAAgB,EAAE,mBAAmB;QACrC,eAAe,EAAE,mBAAmB;QACpC,oBAAoB,EAAE,qBAAqB;QAC3C,eAAe,EAAE,MAAM;QACvB,eAAe,EAAE,oBAAoB;QACrC,iBAAiB,EAAE,iDAAiD;QACpE,yBAAyB,EAAE,iCAAiC;QAC5D,0BAA0B,EAAE,yBAAyB;QACrD,MAAM,EAAE,iBAAiB;QACzB,gBAAgB,EAAE,gDAAgD;QAClE,iBAAiB,EAAE,qBAAqB;QACxC,aAAa,EAAE,eAAe;QAC9B,iBAAiB,EAAE,qBAAqB;QACxC,aAAa,EAAE,oCAAoC;QACnD,cAAc,EAAE,iBAAiB;QACjC,eAAe,EAAE,kBAAkB;QACnC,aAAa,EAAE,oBAAoB;QACnC,aAAa,EAAE,gBAAgB;QAC/B,gBAAgB,EAAE,wBAAwB;QAC1C,aAAa,EAAE,qBAAqB;QACpC,gBAAgB,EAAE,0BAA0B;KAC7C;IACD,kBAAkB;IAClB,EAAE,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,WAAW;QACtB,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,YAAY;QAClB,aAAa,EAAE,eAAe;QAC9B,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,SAAS;QAClB,aAAa,EAAE,yBAAyB;QACxC,GAAG,EAAE,uBAAuB;QAC5B,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,qBAAqB;QAC9B,QAAQ,EAAE,gCAAgC;QAC1C,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,2CAA2C;QACxD,cAAc,EAAE,8CAA8C;QAC9D,iBAAiB,EAAE,sDAAsD;QACzE,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,gBAAgB;QAC3B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,UAAU;QACpB,gBAAgB,EAAE,gBAAgB;QAClC,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,EAAE,EAAE,iCAAiC;QACrC,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,8BAA8B;QAC1C,QAAQ,EAAE,kCAAkC;QAC5C,iBAAiB,EAAE,oDAAoD;QACvE,oBAAoB,EAAE;YACpB,IAAI,EAAE,OAAO;SACd;QACD,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,iCAAiC;QAC7C,cAAc,EAAE,4BAA4B;QAC5C,eAAe,EAAE,6BAA6B;QAC9C,QAAQ,EAAE,oBAAoB;QAC9B,UAAU,EAAE,gCAAgC;QAC5C,eAAe,EAAE,qCAAqC;QACtD,SAAS,EAAE,YAAY;QACvB,gBAAgB,EAAE,oBAAoB;QACtC,qBAAqB,EAAE,8BAA8B;QACrD,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,oBAAoB;QAC/B,iBAAiB,EAAE,6BAA6B;QAChD,gBAAgB,EAAE,eAAe;QACjC,OAAO,EAAE,6BAA6B;QACtC,UAAU,EAAE,iBAAiB;QAC7B,UAAU,EAAE,iBAAiB;QAC7B,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,eAAe;QACzB,cAAc,EAAE,0CAA0C;QAC1D,qBAAqB,EAAE;YACrB,IAAI,EAAE,QAAQ;SACf;QACD,eAAe,EAAE;YACf,GAAG,EAAE,QAAQ;SACd;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;SACf;QACD,kBAAkB,EAAE;YAClB,GAAG,EAAE,MAAM;SACZ;QACD,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;SACf;QACD,cAAc,EAAE;YACd,OAAO,EAAE,0BAA0B;SACpC;QACD,WAAW,EAAE;YACX,OAAO,EAAE,wCAAwC;YACjD,SAAS,EAAE,0BAA0B;YACrC,QAAQ,EAAE,yBAAyB;SACpC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,YAAY;SACzB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,MAAM;SACb;QACD,WAAW,EAAE;YACX,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,SAAS;SACnB;QACD,WAAW,EAAE;YACX,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,YAAY;IACZ,EAAE,EAAE;QACF,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,kBAAkB;QAC/B,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,WAAW;QACjB,cAAc,EAAE,0BAA0B;QAC1C,WAAW,EAAE,uBAAuB;QACpC,GAAG,EAAE,KAAK;QACV,EAAE,EAAE,IAAI;KACT;IACD,eAAe;IACf,EAAE,EAAE;QACF,OAAO,EAAE,qBAAqB;QAC9B,MAAM,EAAE,oBAAoB;QAC5B,QAAQ,EAAE,sBAAsB;QAChC,KAAK,EAAE,mBAAmB;QAC1B,GAAG,EAAE,iBAAiB;QACtB,SAAS,EAAE,yBAAyB;QACpC,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,cAAc;QACtB,WAAW,EAAE,oBAAoB;QACjC,UAAU,EAAE,uBAAuB;QACnC,YAAY,EAAE,yBAAyB;QACvC,cAAc,EAAE,8BAA8B;QAC9C,WAAW,EAAE,oBAAoB;QACjC,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,YAAY;KAC9B;IACD,mBAAmB;IACnB,EAAE,EAAE;QACF,UAAU,EAAE,4BAA4B;QACxC,qBAAqB,EAAE,yBAAyB;QAChD,qBAAqB,EAAE,yBAAyB;KACjD;IACD,UAAU,EAAE;QACV,oBAAoB,EAAE,cAAc;QACpC,cAAc,EAAE,OAAO;QACvB,mBAAmB,EAAE,YAAY;QACjC,gBAAgB,EAAE,QAAQ;QAC1B,cAAc,EAAE,OAAO;QACvB,aAAa,EAAE,MAAM;KACtB;IACD,QAAQ,EAAE;QACR,eAAe,EAAE,iBAAiB;QAClC,eAAe,EAAE,YAAY;QAC7B,gBAAgB,EAAE,aAAa;QAC/B,WAAW,EAAE,kBAAkB;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,cAAc,EAAE,gCAAgC;KACjD;IACD,MAAM,EAAE;QACN,UAAU,EAAE,+DAA+D;QAC3E,MAAM,EAAE,gDAAgD;QACxD,SAAS,EAAE,2EAA2E;QACtF,aAAa,EAAE,wHAAwH;QACvI,cAAc,EAAE,wDAAwD;QACxE,YAAY,EAAE,oJAAoJ;QAClK,SAAS,EAAE,uGAAuG;QAClH,YAAY,EAAE;YACZ,SAAS,EAAE,GAAG;SACf;QACD,OAAO,EAAE,0GAA0G;KACpH;IACD,aAAa;IACb,CAAC,EAAE;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,6CAA6C;SACrD;QACD,WAAW,EAAE,0BAA0B;QACvC,SAAS,EAAE,qBAAqB;QAChC,KAAK,EAAE,OAAO;QACd,yBAAyB;QACzB,6CAA6C;QAC7C,mEAAmE;QACnE,iCAAiC;QACjC,6BAA6B;QAC7B,6CAA6C;QAC7C,mDAAmD;QACnD,2BAA2B;QAC3B,2BAA2B;QAC3B,uBAAuB;QACvB,uBAAuB;QACvB,uBAAuB;QACvB,uBAAuB;QACvB,uBAAuB;QACvB,iDAAiD;QACjD,2DAA2D;QAC3D,2DAA2D;QAC3D,qBAAqB;QACrB,mCAAmC;QACnC,qBAAqB;QACrB,+CAA+C;QAC/C,qCAAqC;QACrC,qDAAqD;QACrD,qBAAqB;QACrB,iBAAiB;QACjB,yBAAyB;QACzB,uBAAuB;QACvB,uCAAuC;QACvC,uBAAuB;QACvB,+BAA+B;QAC/B,+CAA+C;QAC/C,6DAA6D;QAC7D,qCAAqC;QACrC,+CAA+C;QAC/C,yBAAyB;QACzB,iCAAiC;QACjC,+BAA+B;QAC/B,mDAAmD;QACnD,qDAAqD;QACrD,6CAA6C;QAC7C,iCAAiC;QACjC,aAAa;QACb,aAAa;QACb,2CAA2C;QAC3C,2CAA2C;QAC3C,eAAe;QACf,uBAAuB;QACvB,uBAAuB;QACvB,uBAAuB;QACvB,qBAAqB;QACrB,6DAA6D;QAC7D,qCAAqC;QACrC,iDAAiD;QACjD,iCAAiC;QACjC,qBAAqB;QACrB,uBAAuB;QACvB,+CAA+C;QAC/C,6BAA6B;QAC7B,iBAAiB;QACjB,6BAA6B;QAC7B,uBAAuB;QACvB,qBAAqB;QACrB,mBAAmB;QACnB,uBAAuB;QACvB,qCAAqC;QACrC,uCAAuC;QACvC,uBAAuB;QACvB,2BAA2B;QAC3B,iCAAiC;QACjC,6BAA6B;QAC7B,uBAAuB;QACvB,sBAAsB;KACvB;CACF,CAAC;AAEF,8DAA8D;AAC9D,sEAAsE;AACtE,yFAAyF;AACzF,gDAAgD;;;;;;;;;;;;;;;;;;;ACj5BgC;AAGhF;IAAqC,iFAAI;IAMvC,yBAAmB,OAA+B;QAAlD,YACE,iBAAO,SAMR;QAPkB,aAAO,GAAP,OAAO,CAAwB;QAL3C,oBAAc,GAA+B,KAAI,CAAC,QAAQ,EAAmB,CAAC;QAC9E,0BAAoB,GAA+B,KAAI,CAAC,QAAQ,EAAmB,CAAC;QAMzF,KAAI,CAAC,sBAAsB,GAAG,UAAC,MAAmB,EAAE,OAAY;YAC9D,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC5C,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC;QACF,KAAI,CAAC,eAAe,EAAE,CAAC;;IACzB,CAAC;IACD,sBAAW,mCAAM;aAAjB;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7B,CAAC;;;OAAA;IACD,sBAAW,kCAAK;aAAhB;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,CAAC;;;OAAA;IACD,sBAAW,wCAAW;aAAtB;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACjC,CAAC;aACD,UAAuB,KAAgB;YAC/B,IAAI,CAAC,MAAO,CAAC,WAAW,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;;;OAJA;IAKM,oCAAU,GAAjB,UAAkB,KAAgB;QAChC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACM,wCAAc,GAArB,UAAsB,IAAe;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAClE,CAAC;IACM,2CAAiB,GAAxB;QACE,IAAI,CAAC,YAAY,GAAS,IAAI,CAAC,MAAO,CAAC,WAAW,CAAC;QACnD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IACM,yCAAe,GAAtB;QACE,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzE,CAAC;IACM,iCAAO,GAAd;QACE,iBAAM,OAAO,WAAE,CAAC;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACO,yCAAe,GAAvB;QACE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;YACtD,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAC1C,IAAI,CAAC,sBAAsB,CAC5B,CAAC;SACH;IACH,CAAC;IApDW;QAAX,4DAAQ,EAAE;yDAAyB;IAqDtC,sBAAC;CAAA,CA1DoC,gDAAI,GA0DxC;AA1D2B;;;;;;;;;;;;;ACD5B;AAAA;AAAA;AAAA;AAAA;AAA4D;AAG5D;IAEE,wBAAoB,OAAoB;QAAxC,iBAuBC;QAvBmB,YAAO,GAAP,OAAO,CAAa;QAwBjC,UAAK,GAAQ,SAAS,CAAC;QAvB5B,IAAI,CAAC,KAAK,GAAG,IAAI,wEAAkB,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,gBAAM,IAAI,cAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAApC,CAAoC,CAAC,CAAC;QACnF,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC/B,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,EAAE;aACZ;YACD,WAAW,EAAE;gBACX,OAAO,EAAE,EAAE;aACZ;YACD,OAAO,EAAE,cAAM,YAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAjB,CAAiB;SACjC,CAAC,CAAC;QACH,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC/B,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,EAAE;aACZ;YACD,WAAW,EAAE;gBACX,OAAO,EAAE,EAAE;aACZ;YACD,OAAO,EAAE,cAAM,YAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAjB,CAAiB;SACjC,CAAC,CAAC;IACL,CAAC;IAEM,iCAAQ,GAAf;IACA,CAAC;IACM,mCAAU,GAAjB;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACM,+BAAM,GAAb;IACA,CAAC;IACM,yCAAgB,GAAvB;QACE,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5F,CAAC;IACH,qBAAC;AAAD,CAAC;;AAEM,SAAS,mBAAmB,CAAC,eAAwB,EAAE,uBAAmD;IAAnD,qFAAmD;IAC/G,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC/E,IAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC;QACzC,UAAU,CAAC,KAAK,GAAG;YAAU,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YACzC,IAAM,eAAe,GAAoB,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACvE,IAAI;gBACF,eAAe,IAAI,eAAe,CAAC,gBAAgB,CAAC,eAAe,IAAI,WAAW,CAAC,CAAC;gBACpF,IAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjD,OAAO,MAAM,CAAC;aACf;oBAAS;gBACR,eAAe,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC;aACtD;QACH,CAAC,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAEM,SAAS,cAAc,CAAC,uBAAmD;IAAnD,qFAAmD;IAChF,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC/E,IAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC;QACzC,UAAU,CAAC,KAAK,GAAG;YAAU,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YACzC,IAAM,eAAe,GAAoB,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACvE,IAAI;gBACF,eAAe,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC7C,IAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjD,OAAO,MAAM,CAAC;aACf;oBAAS;gBACR,eAAe,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;aAC7C;QACH,CAAC,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;;;;;AC7EgG;AAClC;AACQ;AAEvE;IAAwC,oFAAI;IAqC1C,4BAAoB,OAAoB;QAAxC,YACE,iBAAO,SAER;QAHmB,aAAO,GAAP,OAAO,CAAa;QAIrB,qBAAe,GAAoB,SAAS,CAAC;QA+GhE;;;WAGG;QACI,kBAAY,GAAiB,IAAI,0DAAY,EAAE,CAAC;QACvD;;;YAGI;QACG,kBAAY,GAAiB,IAAI,0DAAY,EAAE,CAAC;QACvD;;;YAGI;QACG,iBAAW,GAAiB,IAAI,0DAAY,EAAE,CAAC;QACtD;;;YAGI;QACG,iBAAW,GAAiB,IAAI,0DAAY,EAAE,CAAC;QApIpD,KAAI,CAAC,YAAY,EAAE,CAAC;;IACtB,CAAC;IApCO,iEAAoC,GAA5C,UACE,IAAY,EACZ,QAAa,EACb,QAAa,EACb,MAAY,EACZ,YAA0B;QAE1B,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YAClF,OAAO;SACR;QACD,IAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1F,IAAI,CAAC,gBAAgB,EAAE;YACrB,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;YACzD,IAAI,CAAC,eAAe,CAAC,sBAAsB,CACzC,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,YAAY,CACb,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACnE,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC;gBACvC,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;SACJ;IACH,CAAC;IAOM,yCAAY,GAAnB;QAAA,iBAiCC;QAhCC,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,CAAC,WAAW,EAAE;YACjB,WAAW,CAAC,8BAA8B,GAAG,UAC3C,IAAY,EACZ,QAAa,EACb,QAAa,EACb,MAAY,EACZ,YAA0B;gBAE1B,KAAI,CAAC,oCAAoC,CACvC,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,YAAY,CACb,CAAC;YACJ,CAAC,CAAC;SACH;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,kEAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,uBAAuB,GAAG,UAC7C,OAAwB;YAExB,KAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC;gBACvC,IAAI,EAAE,OAAO,CAAC,YAAY;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG;YACzC,KAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC;IACO,mDAAsB,GAA9B;QACE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAChE,CAAC;IACO,uDAA0B,GAAlC,UAAmC,GAAS;QAC1C,IACE,CAAC,CAAC,GAAG;YACL,CAAC,GAAG,CAAC,UAAU;YACf,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE;YACjB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EACrD;YACA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO;SACR;QACD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IACM,iCAAI,GAAX;QACE,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAClC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IACM,iCAAI,GAAX;QACE,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAClC,IAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,IAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;IACH,CAAC;IACD,6CAAgB,GAAhB,UAAiB,IAAiB;QAAjB,gCAAiB;QAChC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IACD,4CAAe,GAAf;QACE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;IACjE,CAAC;IAEM,0CAAa,GAApB;QAAA,iBAsBC;QArBC,IAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,kDAAM,CAAC;YAC3B,EAAE,EAAE,aAAa;YACjB,QAAQ,EAAE,WAAW;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAO,IAAI,2DAAe,CAAC,cAAM,YAAI,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU,EAArC,CAAqC,CAAC;YAC9E,MAAM,EAAE,cAAM,YAAI,CAAC,IAAI,EAAE,EAAX,CAAW;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,kDAAM,CAAC;YAC3B,EAAE,EAAE,aAAa;YACjB,QAAQ,EAAE,WAAW;YACrB,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAO,IAAI,2DAAe,CAAC,cAAM,YAAI,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU,EAArC,CAAqC,CAAC;YAC9E,MAAM,EAAE,cAAM,YAAI,CAAC,IAAI,EAAE,EAAX,CAAW;SAC1B,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACO,kDAAqB,GAA7B;QACE,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IAC3D,CAAC;IA7GW;QAAX,4DAAQ,EAAE;+DAAqD;IAmIlE,yBAAC;CAAA,CA5KuC,gDAAI,GA4K3C;AA5K8B;;;;;;;;;;;;;ACJ/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKqB;AACkC;AASvD;IACE;QAwCQ,mBAAc,GAAG,KAAK,CAAC;QACvB,iBAAY,GAAG,KAAK,CAAC;QACrB,0BAAqB,GAAgB,IAAI,CAAC;QAC1C,kBAAa,GAAkB,EAAE,CAAC;QAClC,6BAAwB,GAAW,CAAC,CAAC,CAAC;QAoCtC,uBAAkB,GAAG,CAAC,CAAC;IAhFf,CAAC;IACV,gDAAsB,GAA7B,UACE,IAAY,EACZ,QAAa,EACb,QAAa,EACb,MAAY,EACZ,YAA0B;QAE1B,IAAI,+DAAc,CAAC,YAAY,CAAC,MAAM,CAAC;YAAE,OAAO;QAChD,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI;YAAE,OAAO;QAE9C,IAAI,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAC7C,IAAI,MAAM,GAAG,YAAY;YACvB,CAAC,CAAC,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;YACrD,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEzD,IAAI,CAAC,WAAW,EAAE;YAChB,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;YACpC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAClC,OAAO;SACR;QAED,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACM,2CAAiB,GAAxB,UAAyB,MAAY,EAAE,YAAoB;QACzD,IAAI,IAAI,GAAuB,sDAAU,CAAC,YAAY,CACpD,MAAM,CAAC,OAAO,EAAE,EAChB,YAAY,CACb,CAAC;QACF,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC;IACvC,CAAC;IACM,6CAAmB,GAA1B,UAA2B,MAAY,EAAE,YAAoB,EAAE,QAAa;QAC1E,IAAG,YAAY,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC,CAAC,eAAe;QACzD,IAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtD,IAAG,CAAC,eAAe,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACzE,IAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/E,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAOM,sCAAY,GAAnB,UAAoB,MAAY,IAAI,CAAC;IAC7B,qCAAW,GAAnB;QACE,IAAI,IAAI,CAAC,wBAAwB,GAAG,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YACnE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;SAC/D;IACH,CAAC;IACD,sBAAY,uCAAU;aAAtB;YACE,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,CAAC;QAClD,CAAC;;;OAAA;IACO,yCAAe,GAAvB,UAAwB,WAAwB;QAC9C,IAAI,WAAW,CAAC,OAAO,EAAE;YAAE,OAAO;QAElC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IACO,gDAAsB,GAA9B;QACE,IAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAC5C,IAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACO,6CAAmB,GAA3B;QACE,IAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAC5C,IAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACtD,OAAO,eAAe,CAAC;IACzB,CAAC;IACO,+CAAqB,GAA7B,UAA8B,WAAwB,EAAE,MAAuB;QAAvB,uCAAuB;QAC7E,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5D,CAAC,CAAC,IAAI,CAAC,uBAAuB;gBAC5B,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3E;IACH,CAAC;IACD,6CAAmB,GAAnB,cAAwB,CAAC;IAEzB,0CAAgB,GAAhB,UAAiB,IAAY;QAC3B,IAAG,IAAI,CAAC,UAAU;YAAE,OAAO;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,qBAAqB;YAAE,OAAO;QACvC,IAAI,CAAC,qBAAqB,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,yCAAe,GAAf;QACE,IAAG,IAAI,CAAC,UAAU;YAAE,OAAO;QAC3B,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;QACD,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC;YAAE,OAAO;QACvE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,EAAE;YACjC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACxD;QACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACpC,CAAC;IACD,uDAA6B,GAA7B,UAA8B,QAAoB;QAChD,IAAI,CAAC,qBAAqB,CAAC,YAAY,GAAG,QAAQ,CAAC;IACrD,CAAC;IACD,sBAAW,iDAAoB;aAA/B;YACE,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;QACpC,CAAC;;;OAAA;IACD,iCAAO,GAAP;QACE,OAAO,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACzC,CAAC;IACD,8BAAI,GAAJ;QACE,IAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO;QAE5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,iCAAO,GAAP;QACE,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IACtC,CAAC;IACD,8BAAI,GAAJ;QACE,IAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO;QAE5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,eAAe,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC;IACD,iCAAO,GAAP;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IACD,gCAAM,GAAN;QACE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAEH,sBAAC;AAAD,CAAC;;AAED;IACE,qBAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAEzB,aAAQ,GAAqB,EAAE,CAAC;QAEjC,iBAAY,GAAe,cAAO,CAAC,CAAC;IAJN,CAAC;IAMtC,2BAAK,GAAL;QACE,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACnD,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,EAAE,CAAC;SAChB;IACH,CAAC;IAED,8BAAQ,GAAR;QACE,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,KAAK,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;YACxD,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,QAAQ,EAAE,CAAC;SACnB;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,+BAAS,GAAT,UAAU,MAAW;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,6BAAO,GAAP;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,sBAAI,gCAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;;;OAAA;IACH,kBAAC;AAAD,CAAC;;AASD;IACE,wBACU,aAAqB,EACrB,SAAc,EACd,SAAc,EACd,OAAa;QAHb,kBAAa,GAAb,aAAa,CAAQ;QACrB,cAAS,GAAT,SAAS,CAAK;QACd,cAAS,GAAT,SAAS,CAAK;QACd,YAAO,GAAP,OAAO,CAAM;IACnB,CAAC;IAEL,8BAAK,GAAL;QACE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IACpD,CAAC;IAED,iCAAQ,GAAR;QACE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IACpD,CAAC;IAED,mCAAU,GAAV,UAAW,MAAuB;QAAvB,uCAAuB;QAChC,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,QAAQ,EAAE,MAAM,EAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;YACjD,QAAQ,EAAE,MAAM,EAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;SAClD,CAAC;IACJ,CAAC;IACD,iCAAQ,GAAR,UAAS,MAAY,EAAE,YAAoB,EAAE,QAAa;QACxD,IAAG,MAAM,KAAK,IAAI,CAAC,OAAO,IAAI,YAAY,KAAK,IAAI,CAAC,aAAa,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC9G,IAAM,IAAI,GAAG,sDAAU,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;QACrE,IAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3E,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACH,qBAAC;AAAD,CAAC;;AAED;IAKE,6BACU,aAAqB,EACrB,OAAa,EACrB,YAA0B;QAFlB,kBAAa,GAAb,aAAa,CAAQ;QACrB,YAAO,GAAP,OAAO,CAAM;QANf,WAAM,GAAW,CAAC,CAAC;QACnB,gBAAW,GAAU,EAAE,CAAC;QACxB,kBAAa,GAAU,EAAE,CAAC;QAOhC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC;IACjD,CAAC;IACD,mCAAK,GAAL;QACE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACD,sCAAQ,GAAR;QACE,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAC5C,IAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEjD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CACrC,KAAK,EACL,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CACxC,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IACD,wCAAU,GAAV;QACE,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,QAAQ,EAAE,IAAI,CAAC,aAAa;YAC5B,QAAQ,EAAE,IAAI,CAAC,WAAW;SAC3B,CAAC;IACJ,CAAC;IACD,sCAAQ,GAAR,UAAS,MAAY,EAAE,YAAoB,EAAE,QAAa;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IACH,0BAAC;AAAD,CAAC;;;;;;;;;;;;;ACrRD,uC;;;;;;;;;;;;ACAA;AAAA;AAAO,IAAI,eAAe,GAAG;IAC3B,IAAI,EAAE,iBAAiB;IACvB,SAAS,EAAE,sBAAsB;IACjC,MAAM,EAAE,uCAAuC;IAC/C,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,0BAA0B;IACrC,MAAM,EAAE,0CAA0C;IAClD,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,iBAAiB;IAC5B,UAAU,EAAE,kBAAkB;IAC9B,gBAAgB,EAAE,EAAE;IACpB,aAAa,EAAE,mBAAmB;IAClC,UAAU,EAAE;QACV,QAAQ,EAAE,kCAAkC;QAC5C,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,+BAA+B;QACtC,OAAO,EAAE,iCAAiC;QAC1C,IAAI,EAAE,8BAA8B;KACrC;IACD,KAAK,EAAE;QACL,KAAK,EAAE,4BAA4B;QACnC,eAAe,EAAE,8BAA8B;QAC/C,aAAa,EAAE,4BAA4B;QAC3C,YAAY,EAAE,yBAAyB;QACvC,WAAW,EAAE,wCAAwC;QACrD,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE,oBAAoB;QAC7B,IAAI,EAAE,iBAAiB;QACvB,YAAY,EAAE,2BAA2B;QACzC,MAAM,EAAE,mBAAmB;QAC3B,YAAY,EAAE,0BAA0B;KACzC;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,8BAA8B;QAC1C,KAAK,EAAE,+BAA+B;QACtC,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,8BAA8B;QAC5C,SAAS,EAAE,2BAA2B;QACtC,WAAW,EAAE,4DAA4D;QACzE,cAAc,EACZ,+DAA+D;QACjE,UAAU,EAAE,4BAA4B;QACxC,UAAU,EAAE,4BAA4B;QACxC,iBAAiB,EAAE,sCAAsC;QACzD,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,mBAAmB;QAChC,YAAY,EAAE,iCAAiC;QAC/C,SAAS,EAAE,6BAA6B;KACzC;IACD,QAAQ,EAAE,iCAAiC;IAC3C,WAAW,EAAE,mBAAmB;IAChC,YAAY,EAAE,oBAAoB;IAClC,iBAAiB,EAAE,YAAY;IAC/B,IAAI,EAAE;QACJ,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,uCAAuC;KACrD;IACD,SAAS,EAAE,2BAA2B;IACtC,eAAe,EAAE,uCAAuC;IACxD,GAAG,EAAE,sBAAsB;IAC3B,WAAW,EAAE,mBAAmB;IAChC,QAAQ,EAAE;QACR,QAAQ,EAAE,gCAAgC;QAC1C,QAAQ,EAAE,wDAAwD;QAClE,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,sBAAsB;QAC9B,UAAU,EAAE,sCAAsC;QAClD,SAAS,EAAE,qCAAqC;QAChD,YAAY,EAAE,wCAAwC;QACtD,OAAO,EAAE,uBAAuB;QAChC,WAAW,EAAE,6BAA6B;QAC1C,aAAa,EAAE,8BAA8B;QAC7C,aAAa,EAAE,6BAA6B;QAC5C,YAAY,EAAE,4BAA4B;QAC1C,KAAK,EAAE,+BAA+B;QACtC,YAAY,EAAE,6BAA6B;QAC3C,MAAM,EAAE,mBAAmB;QAC3B,WAAW,EAAE,2CAA2C;QACxD,qBAAqB,EAAE,2CAA2C;QAClE,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,+BAA+B;QAC9C,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,sBAAsB;QAC9B,SAAS,EAAE,0BAA0B;QACrC,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,wBAAwB;KACnC;IACD,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACrD,KAAK,EAAE;QACL,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,oCAAoC;QACjD,cAAc,EAAE,uCAAuC;KACxD;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,4CAA4C;QAClD,aAAa,EAAE,yBAAyB;QACxC,QAAQ,EAAE,oBAAoB;QAC9B,YAAY,EAAE,2CAA2C;QACzD,WAAW,EAAE,uBAAuB;QACpC,SAAS,EAAE,0BAA0B;QACrC,UAAU,EAAE,8BAA8B;QAC1C,KAAK,EAAE,uBAAuB;QAC9B,yBAAyB;QACzB,aAAa,EAAE,eAAe;QAC9B,YAAY,EAAE,EAAE;QAChB,sDAAsD;QACtD,WAAW,EAAE,uBAAuB;QACpC,aAAa,EAAE,mBAAmB;QAClC,wCAAwC;QACxC,0CAA0C;QAC1C,YAAY,EAAE,uBAAuB;QACrC,iBAAiB,EAAE,yBAAyB;QAC5C,mEAAmE;QACnE,KAAK,EAAE,iCAAiC;QACxC,MAAM,EAAE,wBAAwB;KACjC;IACD,UAAU,EAAE;QACV,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,yCAAyC;QAC/C,UAAU,EAAE,8BAA8B;QAC1C,KAAK,EAAE,uBAAuB;QAC9B,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,wCAAwC;QACtD,WAAW,EAAE,oBAAoB;QACjC,SAAS,EAAE,uBAAuB;QAClC,WAAW,EAAE,sCAAsC;QACnD,aAAa,EAAE,8BAA8B;QAC7C,YAAY,EAAE,yBAAyB;QACvC,iBAAiB,EAAE,0CAA0C;QAC7D,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,mCAAmC;QAChD,MAAM,EAAE,wBAAwB;KACjC;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,sDAAsD;QAChE,YAAY,EAAE,gBAAgB;QAC9B,YAAY,EAAE,cAAc;QAC5B,mBAAmB,EAAE,uBAAuB;QAC5C,yBAAyB,EAAE,6BAA6B;QACxD,oBAAoB,EAAE,wBAAwB;QAC9C,SAAS,EAAE,eAAe;QAC1B,aAAa,EAAE,uBAAuB;QACtC,eAAe,EAAE,uBAAuB;QACxC,oBAAoB,EAAE,uBAAuB;QAC7C,qBAAqB,EAAE,mBAAmB;QAC1C,yBAAyB,EAAE,yBAAyB;KACrD;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,0BAA0B;QACjC,OAAO,EAAE,yCAAyC;QAClD,yBAAyB,EAAE,iCAAiC;QAC5D,OAAO,EAAE,kBAAkB;KAC5B;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,wBAAwB;QAC9B,SAAS,EAAE,8BAA8B;QACzC,OAAO,EAAE,6CAA6C;QACtD,GAAG,EAAE,uBAAuB;QAC5B,IAAI,EAAE,wBAAwB;KAC/B;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,kDAAkD;QACzD,OAAO,EAAE,6CAA6C;QACtD,iBAAiB,EAAE,oEAAoE;QACvF,aAAa,EAAE,EAAE;QACjB,KAAK,EAAE,iCAAiC;QACxC,OAAO,EAAE,kBAAkB;KAC5B;IACD,WAAW,EAAE;QACX,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,uBAAuB;QAC7B,UAAU,EAAE,+BAA+B;QAC3C,WAAW,EAAE,gCAAgC;QAC7C,YAAY,EAAE,iCAAiC;QAC/C,SAAS,EAAE,mCAAmC;QAC9C,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,0BAA0B;QACvC,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE,uBAAuB;QACjC,WAAW,EAAE,SAAS;QACtB,KAAK,EAAE,iCAAiC;KACzC;IACD,MAAM,EAAE;QACN,YAAY,EAAE,8BAA8B;QAC5C,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,wBAAwB;QAClC,IAAI,EAAE,kCAAkC;QACxC,UAAU,EAAE,yCAAyC;QACrD,KAAK,EAAE,sCAAsC;QAC7C,SAAS,EAAE,yDAAyD;QACpE,WAAW,EAAE,oBAAoB;QACjC,YAAY,EAAE,wCAAwC;QACtD,SAAS,EAAE,uBAAuB;QAClC,iBAAiB,EAAE,0CAA0C;QAC7D,aAAa,EAAE,8BAA8B;QAC7C,QAAQ,EAAE,kBAAkB;QAC5B,gBAAgB,EAAE,2BAA2B;QAC7C,gBAAgB,EAAE,4BAA4B;KAC/C;IACD,cAAc,EAAE;QACd,YAAY,EAAE,mBAAmB;QACjC,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,iBAAiB;QACvB,UAAU,EAAE,yCAAyC;KACtD;IACD,aAAa,EAAE;QACb,YAAY,EAAE,mBAAmB;QACjC,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,8CAA8C;QACvD,IAAI,EAAE,iBAAiB;QACvB,UAAU,EAAE,yCAAyC;QACrD,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,uCAAuC;QAClD,YAAY,EAAE,gCAAgC;QAC9C,oBAAoB,EAAE,0CAA0C;QAChE,UAAU,EAAE,wBAAwB;QACpC,kBAAkB,EAAE,kCAAkC;QACtD,eAAe,EAAE,+BAA+B;QAChD,WAAW,EAAE,0CAA0C;QACvD,SAAS,EAAE,uEAAuE;QAClF,YAAY,EAAE,+BAA+B;QAC7C,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,uBAAuB;QAC7C,eAAe,EAAE,2BAA2B;QAC5C,QAAQ,EAAE,iCAAiC;QAC3C,MAAM,EAAE,EAAE;QACV,wBAAwB,EAAE,iDAAiD;QAC3E,2BAA2B,EAAE,oDAAoD;QACjF,gBAAgB,EAAE,gCAAgC;QAClD,aAAa,EAAE,qCAAqC;QACpD,mBAAmB,EAAE,6BAA6B;KACnD;IACD,MAAM,EAAE;QACN,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,4BAA4B;QACtC,OAAO,EAAE,sBAAsB;QAC/B,QAAQ,EAAE,uBAAuB;QACjC,OAAO,EAAE,sBAAsB;QAC/B,QAAQ,EAAE,sBAAsB;KACjC;IACD,OAAO,EAAE;QACP,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,4CAA4C;QACrD,yBAAyB,EAAE,iCAAiC;QAC5D,KAAK,EAAE,0BAA0B;KAClC;IACD,UAAU,EAAE,EAAE;IACd,IAAI,EAAE;QACJ,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,iCAAiC;QACxC,gBAAgB,EAAE,oBAAoB;QACtC,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,YAAY;QACtB,cAAc,EAAE,gBAAgB;QAChC,aAAa,EAAE,qBAAqB;QACpC,SAAS,EAAE,oBAAoB;QAC/B,YAAY,EAAE,0CAA0C;QACxD,UAAU,EAAE,8BAA8B;QAC1C,QAAQ,EAAE,gCAAgC;QAC1C,YAAY,EAAE,YAAY;QAC1B,kBAAkB,EAAE,6BAA6B;QACjD,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,sBAAsB;QACrC,OAAO,EAAE,mBAAmB;KAC7B;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,mCAAmC;QACzC,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE,iBAAiB;QAC3B,WAAW,EAAE,cAAc;KAC5B;IACD,qBAAqB,EAAE;QACrB,OAAO,EAAE,kEAAkE;KAC5E;IACD,qBAAqB,EAAE;QACrB,OAAO,EAAE,+CAA+C;KACzD;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,EAAE;KACpB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE;YACN,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,EAAE;SACpB;KACF;IACD,SAAS,EAAE;QACT,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,4BAA4B;QACzC,UAAU,EAAE,yBAAyB;QACrC,QAAQ,EAAE,yBAAyB;QACnC,SAAS,EAAE,0BAA0B;KACtC;CACF,CAAC;;;;;;;;;;;;;;;;;;;;;AC7TkG;AACzC;AACU;AAErE,IAAI,IAAI,GAAG;IACT,IAAI,EAAE,uBAAuB;IAC7B,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE;QACd,wDAAwD;IAC1D,CAAC;CACF,CAAC;AAEF,IAAI,CAAC,+DAAmB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACpE,+DAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC;CAC/C;AAED;IAAgD,4FAAkB;IAAlE;;IA0CA,CAAC;IAxCQ,wCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;IACjC,CAAC;IACM,4CAAO,GAAd;QACE,IAAM,GAAG,GAAG;YACV,IAAI,EAAE,uBAAuB;SAC9B,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IACM,8CAAS,GAAhB,UAAiB,GAAS,EAAE,QAAgC,EAAE,IAAwB,EAAE,OAA8B;QACpH,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9E,QAAQ,CAAC,qBAAqB,GAAG,UAAC,KAAU;YAC1C,IAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/C,IAAM,MAAM,GAA6B,EAAE,CAAC;gBAC5C,KAAyB,UAAuB,EAAvB,QAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAvB,cAAuB,EAAvB,IAAuB,EAAE;oBAA9C,IAAM,WAAW;oBACnB,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;iBAC5E;gBACD,OAAO,MAAM,CAAC;aACf;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IACO,iDAAY,GAApB,UAAqB,GAAS,EAAE,OAA8B;QAC5D,IAAM,GAAG,GAAG,EAAE,CAAC;QACf,KAA0B,UAAuB,EAAvB,QAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAvB,cAAuB,EAAvB,IAAuB,EAAE;YAA9C,IAAM,WAAW;YACpB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;SAC1D;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACO,mDAAc,GAAtB,UAAuB,WAAmB,EAAE,GAAS,EAAE,OAA8B;QACnF,IAAM,IAAI,GAAG,IAAI,8DAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAM,IAAI,GAAG,8DAA4B,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,sEAAkB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IACH,iCAAC;AAAD,CAAC,CA1C+C,oDAAkB,GA0CjE;;AAED,8DAA4B,CAAC,QAAQ,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;ACxDnD;AAEsC;AACR;AAEnD;IAAiC,6EAAwB;IAEvD,qBACS,MAA2B,EAClC,OAAqC;QAArC,wCAAqC;QAFvC,YAIE,kBAAM,OAAO,CAAC,SAOf;QAVQ,YAAM,GAAN,MAAM,CAAqB;QAIlC,KAAI,CAAC,eAAe,GAAgC,CAClD,KAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAC9C,CAAC;QACF,KAAI,CAAC,YAAY,EAAE,CAAC;QACpB,KAAI,CAAC,SAAS,EAAE,CAAC;QACjB,KAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;;IACtD,CAAC;IACS,mCAAa,GAAvB;QACE,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,SAAS;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;IACS,6CAAuB,GAAjC;QACE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,sBAAW,mCAAU;aAArB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;;;OAAA;IACM,2BAAK,GAAZ;QACE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,kCAAY,GAApB;QACE,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC9D;IACH,CAAC;IACO,+BAAS,GAAjB;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CACvB,IAAI,qDAAS,CACX,SAAS,EACT,sEAAkB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CACnD,CACF,CAAC;QACF,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,qDAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACvE;IACH,CAAC;IACH,kBAAC;AAAD,CAAC,CAtDgC,+DAAwB,GAsDxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChEkU;AAC7P;AACX;AACX;AACG;AAC4B;AACrB;AACM;AAEhE;IAAA;QACS,gBAAW,GAAW,KAAK,CAAC;QAE5B,aAAQ,GAAW,0DAAQ,CAAC,KAAK,CAAC,eAAe,CAAC;IAE3D,CAAC;IAAD,0BAAC;AAAD,CAAC;;AACD;IAA+C,2FAAmB;IAChE,mCAA0B,MAAmB;QAA7C,YACE,iBAAO,SACR;QAFyB,YAAM,GAAN,MAAM,CAAa;;IAE7C,CAAC;IACM,mDAAe,GAAtB;QACE,IAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzB,IAAI,EAAE,IAAI,OAAO;YAAE,OAAO,GAAG,CAAC;QAC9B,IAAI,EAAE,IAAI,UAAU;YAAE,OAAO,IAAI,CAAC;QAClC,IAAI,EAAE,IAAI,SAAS;YAAE,OAAO,GAAG,CAAC;QAChC,IAAI,EAAE,IAAI,MAAM;YAAE,OAAO,GAAG,CAAC;QAC7B,IAAI,EAAE,IAAI,gBAAgB;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,EAAE,IAAI,aAAa;YAAE,OAAO,IAAI,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;IACM,gDAAY,GAAnB;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,GAAG,GAAG,GAAG,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,IAAI,IAAI,CAAC;SACrC;QACD,GAAG,IAAI,GAAG,CAAC;QACX,OAAO,GAAG,CAAC;IACb,CAAC;IACD,sBAAW,sDAAe;aAA1B;YACE,OAAO,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC;QACnE,CAAC;;;OAAA;IACD,sBAAW,8CAAO;aAAlB;YACE,OAAO,CACL,CAAC,CAAC,IAAI,CAAC,YAAY;gBACnB,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,mDAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC7D,CAAC;QACJ,CAAC;;;OAAA;IACM,gDAAY,GAAnB;QACE,IAAI,IAAI,GAAG,0EAAqB,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/F,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,0DAAsB,GAA9B;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,IACE,QAAQ;YACR,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,YAAY,EAAE;YACxC,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,EAAE,EAC5C;YACA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;SAC1E;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACO,6CAAS,GAAjB,UAAkB,GAAQ;QACxB,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO;YAAE,OAAO,GAAG,CAAC;QAChD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QACpC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACxD,OAAO,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IACO,6CAAS,GAAjB,UAAkB,GAAQ;QACxB,IACE,OAAO,GAAG,KAAK,QAAQ;YACvB,GAAG,CAAC,MAAM,GAAG,CAAC;YACd,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;YACd,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;YAEd,OAAO,KAAK,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACO,2CAAO,GAAf,UAAgB,EAAU;QACxB,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC;IAChC,CAAC;IACH,gCAAC;AAAD,CAAC,CA1E8C,mBAAmB,GA0EjE;;AAED;IACE,qCAA2B,QAA0C;QAA1C,0CAA0C;QAA1C,aAAQ,GAAR,QAAQ,CAAkC;IAAI,CAAC;IACnE,2CAAK,GAAZ,UAAa,IAAY;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,OAAO,GAAG,IAAI,4DAAgB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACO,sDAAgB,GAAxB,UAAyB,OAAgB;QACvC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE;YAChD,GAAG,GAAG,EAAE,CAAC;SACV;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACO,0DAAoB,GAA5B,UAA6B,OAAgB,EAAE,GAA+B,EAAE,iBAAyB;QACvG,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO;YAC9B,OAAO,IAAI,CAAC,+BAA+B,CAAe,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1E,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACjD,IAAM,EAAE,GAAkB,OAAO,CAAC;QAClC,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,EAAE,CAAC,aAAa;YAClB,OAAO,IAAI,CAAC,8BAA8B,CAAC,EAAE,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,gCAAgC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IACO,oEAA8B,GAAtC,UAAuC,EAAiB,EAAE,GAA+B,EAAE,iBAAyB;QAClH,IAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;QACnC,IAAI,WAAW,IAAI,IAAI,IAAI,CAAC,CAAC,iBAAiB,IAAI,iBAAiB,IAAI,WAAW;YAChF,OAAO,KAAK,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,WAAW,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,IAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,WAAW,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,GAAG,CAAC,gBAAgB,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,sEAAgC,GAAxC,UAAyC,EAAiB,EAAE,GAA+B;QACzF,IAAM,eAAe,GAAa,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACxE,IAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACrD,IAAM,YAAY,GAAG,CAAC,UAAU,CAAC,CAAC,CAAQ,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,IACE,CAAC,eAAe;YAChB,CAAC,CAAC,YAAY,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YAE1E,OAAO,KAAK,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QACrE,IAAM,IAAI,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,WAAW,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;QACzG,IAAI,CAAC,CAAC,UAAU,EAAE;YAChB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;SACzB;QACD,IAAI,CAAC,CAAC,YAAY,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC;SACxC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACO,wDAAkB,GAA1B,UAA2B,QAAgB;QACzC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IACO,8DAAwB,GAAhC,UAAiC,EAAiB;QAChD,IAAM,YAAY,GAAiB,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACvD,IAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5E,IAAM,GAAG,GAAG,EAAE,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAS,OAAQ,CAAC,YAAY,CAAC,CAAC;SACzC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC;IACO,qEAA+B,GAAvC,UAAwC,EAAgB,EAAE,GAA+B;QACvF,IAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC7B,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,IAAI,UAAU;YAAE,OAAO,KAAK,CAAC;QACjE,IAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC;QAC9B,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,UAAU;YAAE,OAAO,KAAK,CAAC;QACrE,IAAM,YAAY,GAAc,OAAQ,CAAC,QAAQ,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;QACzD,IAAM,IAAI,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACO,yDAAmB,GAA3B,UAA4B,QAAgB;QAC1C,IAAI,QAAQ,IAAI,MAAM;YAAE,OAAO,SAAS,CAAC;QACzC,IAAI,QAAQ,IAAI,SAAS;YAAE,OAAO,MAAM,CAAC;QACzC,IAAI,QAAQ,IAAI,aAAa;YAAE,OAAO,gBAAgB,CAAC;QACvD,IAAI,QAAQ,IAAI,gBAAgB;YAAE,OAAO,aAAa,CAAC;QACvD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACO,sDAAgB,GAAxB,UAAyB,EAAiB,EAAE,MAAc;QACxD,IAAI,CAAC,EAAE,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAClC,IACE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,MAAM;YACnC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,MAAM;YAEpC,OAAO,IAAI,CAAC;QACd,IACE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,MAAM;YAClC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,MAAM;YAEnC,OAAO,IAAI,CAAC;QACd,OAAO,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,MAAM;YACvC,CAAC,CAAC,EAAE,CAAC,WAAW;YAChB,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC;IACtB,CAAC;IACO,4DAAsB,GAA9B,UAA+B,QAAgB;QAC7C,OAAO,QAAQ,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,CAAC;IACvD,CAAC;IACH,kCAAC;AAAD,CAAC;;AAED,SAAS,sBAAsB,CAAC,MAAW;IACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC;AAC3D,CAAC;AAED,2DAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;AAEpF;IAAqC,iFAAwB;IA4C3D,yBACE,MAAmB,EACnB,MAAmB,EACnB,OAAqC,EAC7B,YAAiB;QAFzB,sCAAmB;QACnB,wCAAqC;QAC7B,gDAAiB;QAJ3B,YAME,kBAAM,OAAO,CAAC,SA+Bf;QAjCS,kBAAY,GAAZ,YAAY,CAAK;QATnB,+BAAyB,GAAG,EAAE,CAAC;QAC/B,kBAAY,GAAY,IAAI,CAAC;QAmQ7B,0BAAoB,GAAG,KAAK,CAAC;QA0L7B,6BAAuB,GAAa,IAAI,CAAC;QAlb/C,KAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,KAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,KAAI,CAAC,UAAU,GAA8B,CAAC,KAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1F,KAAI,CAAC,eAAe,GAAyB,CAAC,KAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE;YAC3C,KAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC;SAClE;QACD,KAAI,CAAC,qBAAqB,GAAG,KAAI,CAAC,2BAA2B,EAAE,CAAC;QAChE,KAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACjD,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,KAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACtD,KAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,KAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACxD,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,EAAE;gBACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;aAC7B;YACD,IAAI,KAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC;gBAC3B,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,aAAa,GAAG,MAAM,CAAC;QAClF,CAAC,CAAC,CAAC;QACH,KAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACjE,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,KAAI,CAAC,UAAU,CAAC,GAAG,GAAG,qEAAQ,CAAC;QAC/B,KAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YAC7D,KAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,KAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAI,CAAC,MAAM,IAAI,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,KAAI,CAAC,2BAA2B,EAAE,CAAC;;IACrC,CAAC;IAhFa,kCAAkB,GAAhC,UAAiC,IAAY;QAC3C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,OAAO,CAAC,CAAC,IAAI,4DAAgB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IACa,kCAAkB,GAAhC,UAAiC,IAAY;QAC3C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,IAAI,2BAA2B,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAClE,CAAC;IACa,iCAAiB,GAA/B,UAAgC,KAAa,EAAE,aAA4B;QACzE,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7D,IAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAM,WAAW,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,MAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,MAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBAClB,WAAW,CAAC,IAAI,CAAC,MAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aACrC;iBAAM;gBACL,QAAQ,CAAC,IAAI,CAAC,MAAI,CAAC,CAAC;aACrB;SACF;QACD,OAAO,eAAe,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IACa,+BAAe,GAA7B,UAA8B,KAAa,EAAE,QAAuB,EAAE,WAA0B;QAC9F,IAAI,SAAS,GAAG,sDAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC,SAAS,EAAE;YAClB,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YACvD,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC3D,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,sDAAU,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SACxF;QACD,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9B,CAAC;IAiDD,sBAAW,kCAAK;aAAhB;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B,CAAC;aACD,UAAiB,GAAW;YAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;QAC9B,CAAC;;;OAJA;IAKD,sBAAW,oCAAO;aAAlB;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;aACD,UAAmB,GAAY;YAC7B,IAAI,GAAG,KAAK,IAAI,CAAC,YAAY;gBAAE,OAAO;YACtC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC;;;OALA;IAMS,qDAA2B,GAArC;QACE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;YAChB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,UAAU,GAAG,kDAAkD,CAAC;aACjE;YACD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC;SACrF;IACH,CAAC;IACS,uCAAa,GAAvB;QACE,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,cAAc;oBACpB,aAAa,EAAE,QAAQ;oBACvB,IAAI,EAAE,OAAO;oBACb,yBAAyB,EAAE,OAAO;oBAClC,YAAY,EAAE,sEAAkB,CAAC,SAAS,CAAC,iBAAiB,CAAC;oBAC7D,aAAa,EAAE,CAAC;oBAChB,aAAa,EAAE,CAAC;oBAChB,gBAAgB,EAAE,KAAK;oBACvB,gBAAgB,EAAE;wBAChB;4BACE,IAAI,EAAE,aAAa;4BACnB,IAAI,EAAE,UAAU;4BAChB,QAAQ,EAAE,eAAe;4BACzB,aAAa,EAAE,QAAQ;4BACvB,kBAAkB,EAAE,KAAK;4BACzB,SAAS,EAAE,kBAAkB;4BAC7B,OAAO,EAAE;gCACP,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,sEAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gCAC9D,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,sEAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;6BAC7D;yBACF;wBACD;4BACE,IAAI,EAAE,cAAc;4BACpB,IAAI,EAAE,UAAU;4BAChB,QAAQ,EAAE,eAAe;4BACzB,KAAK,EAAE,sEAAkB,CAAC,SAAS,CAAC,OAAO,CAAC;4BAC5C,aAAa,EAAE,MAAM;4BACrB,kBAAkB,EAAE,KAAK;4BACzB,gBAAgB,EAAE,KAAK;4BACvB,UAAU,EAAE,IAAI;yBACjB;wBACD;4BACE,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,UAAU;4BAChB,QAAQ,EAAE,eAAe;4BACzB,aAAa,EAAE,KAAK;4BACpB,aAAa,EAAE,QAAQ;4BACvB,gBAAgB,EAAE,KAAK;4BACvB,kBAAkB,EAAE,KAAK;4BACzB,UAAU,EAAE,IAAI;4BAChB,QAAQ,EAAE,+BAA+B;yBAC1C;wBACD;4BACE,IAAI,EAAE,cAAc;4BACpB,IAAI,EAAE,WAAW;4BACjB,aAAa,EAAE,QAAQ;4BACvB,kBAAkB,EAAE,KAAK;4BACzB,OAAO,EAAE,KAAK;4BACd,gBAAgB,EAAE,KAAK;4BACvB,eAAe,EAAE,KAAK;4BACtB,UAAU,EAAE,KAAK;4BACjB,SAAS,EAAE,KAAK;yBACjB;wBACD;4BACE,IAAI,EAAE,eAAe;4BACrB,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,KAAK;yBACf;wBACD;4BACE,IAAI,EAAE,aAAa;4BACnB,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,KAAK;4BACd,IAAI,EAAE,oFAAgF,sEAAkB,CAAC,SAAS,CAAC,2BAA2B,CAAC,iBAAc;yBAC9J;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,aAAa,EAAE,QAAQ;oBACvB,IAAI,EAAE,YAAY;oBAClB,cAAc,EAAE,UAAU;oBAC1B,WAAW,EAAE,sEAAkB,CAAC,SAAS,CAAC,+BAA+B,CAAC;oBAC1E,OAAO,EAAE,KAAK;iBACf;aACF;SACF,CAAC;IACJ,CAAC;IACD;;;;;;;;;IASA;IACU,iDAAuB,GAAjC;QACE,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,sBAAW,iCAAI;aAAf;YACE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;aACD,UAAgB,GAAW;YACzB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE;gBAC7D,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;aAC1B;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;aACvB;QACH,CAAC;;;OATA;IAUM,oCAAU,GAAjB,UAAkB,QAAgB;QAChC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO;YAAE,OAAO,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC;QAC1D,IAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,IAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,4DAAgB,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAM,KAAK,GAAG,IAAI,4DAAgB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,sBAAW,oCAAO;aAAlB;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;aACD,UAAmB,GAAa;YAC9B,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO;gBAAE,OAAO;YACjC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;aAC5B;QACH,CAAC;;;OARA;IASO,qCAAW,GAAnB,UAAoB,GAAW;QAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1B,IAAM,KAAK,GAAG,IAAI,2BAA2B,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,sBAAW,mCAAM;aAAjB;YACE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;;;OAAA;IACD,sBAAW,mCAAM;aAAjB;YACE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;;;OAAA;IACD,sBAAW,kCAAK;aAAhB;YACE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;;;OAAA;IACD,sBAAW,uCAAU;aAArB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;;;OAAA;IACD,sBAAW,oCAAO;aAAlB;YACE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;gBAC3B,OAAO,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAClE;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;oBAC/D,OAAO,KAAK,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;QACd,CAAC;;;OAAA;IAEM,sCAAY,GAAnB;QACE,IAAM,OAAO,GAAS,IAAI,CAAC,MAAO,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,mFAAc,CAAC,mBAAmB,CAAC,CAAC;YACrD,CAAC,CAAC,OAAO;gBACP,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,+BAAK,GAAZ;QACE,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACM,wCAAc,GAArB,UAAsB,YAAqB;QACzC,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC7B;SACF;IACH,CAAC;IACO,qCAAW,GAAnB,UAAoB,KAAiC;QACnD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC;IAEO,gDAAsB,GAA9B,UAA+B,IAAyB,EAAE,KAAiB;QAA3E,iBAcC;QAbC,IAAM,gBAAgB,GAA0B,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACpF,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/C,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QACvC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,GAAG;YACnC,IAAM,IAAI,GAAG,KAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,KAAI,CAAC,eAAe,CAAC,CAAC;YAChH,IAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAExC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,MAAM,EAAE,KAAK;gBAChC,IAAM,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,0DAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrG,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;gBACvC,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACO,oDAA0B,GAAlC,UAAmC,IAAyB,EAAE,KAAiB;QAC7E,IAAM,iBAAiB,GAA0B,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACzF,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACzD,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5F,IAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE;YAC7C,iBAAiB,CAAC,KAAK,GAAG,YAAY,CAAC;SACxC;IACH,CAAC;IACO,6CAAmB,GAA3B,UAA4B,KAAiB;QAC3C,IAAM,YAAY,GAAyD,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,CAAC;QACpI,IAAM,sBAAsB,GAAQ,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAC5E,sBAAsB,CAAC,iBAAiB,GAAG;YACzC,IAAI,CAAC,CAAC,YAAY,EAAE;gBAClB,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACnC;QACH,CAAC,CAAC;QACF,sBAAsB,CAAC,uBAAuB,GAAG,4CAA4C,CAAC;QAC9F,sBAAsB,CAAC,aAAa,GAAG,EAAE,CAAC;IAC5C,CAAC;IACO,wCAAc,GAAtB,UAAuB,IAAyB,EAAE,KAAiB;QACjE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,KAAK,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAChE,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE;YAC9C,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SAC7D;QACD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,CAAC;IACO,+CAAqB,GAA7B;QACE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,qBAAqB,CAAC;QACrD,IAAM,GAAG,GAAG,EAAE,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1D,IAAM,IAAI,GAAQ,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;gBAClD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChB;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACO,iCAAO,GAAf;QACE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAC1D,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO;gBAAE,MAAM;YAC7B,IAAI,CAAC,CAAC,GAAG,EAAE;gBACT,GAAG,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;aACzC;YACD,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;SAChC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACO,wCAAc,GAAtB;QACE,IAAM,GAAG,GAAG,EAAE,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChE;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACO,mDAAyB,GAAjC,UAAkC,KAAiB;QACjD,IAAM,IAAI,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QAChE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC;QACjG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;QAC1D,IAAI,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE;YAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;SAC7D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,kDAAwB,GAAhC,UAAiC,IAAY;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACxC,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IACO,6CAAmB,GAA3B,UAA4B,IAAY,EAAE,MAAmB;QAAnB,oCAAmB;QAC3D,OAAO,2DAAY,CAAC,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;IACO,gDAAsB,GAA9B,UAA+B,IAAY;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACxC,IAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;IAClD,CAAC;IACO,8CAAoB,GAA5B;QACE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;YAClF,IAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,CAAC,OAAO;gBAAE,OAAO,OAAO,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,qDAA2B,GAAnC;QACE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC/F;IACH,CAAC;IACO,kDAAwB,GAAhC,UAAiC,IAAY;QAC3C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAiB,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IACO,qDAA2B,GAAnC;QACE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAC5B,IAAM,GAAG,GAAG,EAAE,CAAC;QACf,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAChD,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,aAAa,IAAI,QAAQ;oBAAE,SAAS;gBACxC,IAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;gBAC7F,QAAQ,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACrD;YACD,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,IAAI,CAAC,YAAY,EAAO,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC7G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;oBACzC,IAAI,MAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACvB,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;oBACnC,IAAI,CAAC,CAAC,SAAS,IAAI,MAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBAC/C,MAAI,GAAG,MAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;qBAC/C;oBACD,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAI,CAAC,CAAC;iBAClG;gBACD,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;aACxD;SACF;QACD,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACrD,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,+BAA+B,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,SAAS,KAAK,KAAK,EAAE;YACvB,2DAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACO,0CAAgB,GAAxB;QACE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;YAC1D,IAAM,GAAG,GAAoB,IAAI,CAAC,MAAO,CAAC,QAAQ,CAAC;YACnD,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;gBACxB,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC;oBACvE,OAAO,GAAG,CAAC,QAAQ,CAAC;gBACtB,OAAO,GAAG,CAAC;aACZ;SACF;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACO,yDAA+B,GAAvC,UAAwC,MAAkB,EAAE,GAAe;QACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,MAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,yBAAyB,CAAC,MAAI,CAAC,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACzE,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,MAAI;gBACX,IAAI,EAAE,MAAI;gBACV,QAAQ,EAAE,IAAI,CAAC,0BAA0B,EAAE;aAC5C,CAAC,CAAC;SACJ;IACH,CAAC;IACO,mDAAyB,GAAjC,UAAkC,KAAiB;QACjD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,cAAI;YACvC,IAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oDAA0B,GAAlC;QACE,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YACjC,IAAI,CAAC,uBAAuB,GAAG,sDAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,UAAU,CAAC;SAChD;QACD,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IACO,sCAAY,GAApB;QACE,IAAM,GAAG,GAAG,EAAE,CAAC;QACf,IAAM,GAAG,GAAG,0DAAQ,CAAC,SAAS,CAAC;QAC/B,KAAK,IAAM,MAAI,IAAI,GAAG,EAAE;YACtB,GAAG,CAAC,IAAI,CAAC,IAAI,qDAAS,CAAC,MAAI,EAAE,sEAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,MAAI,CAAC,CAAC,CAAC,CAAC;SAC3E;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACO,8CAAoB,GAA5B,UAA6B,KAAiB;QAC5C,IAAI,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE;YAC9C,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC;SACvD;QACD,IAAI,IAAI,GAAG,IAAI,CAAC,wBAAwB,CACtC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,KAAK,EAC7C,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,KAAK,CAC1C,CAAC;QACF,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG;gBACL,IAAI,EAAE,MAAM;aACb,CAAC;SACH;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,2DAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,kGAAkG,CAAC;QACnH,IAAI,WAAW,GAAG,sDAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC;QACjB,IAAI,sDAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,EAAE;YAChB,WAAW,GAAG,sDAAU,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpD;QACD,IAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,CAAC,WAAW,EAAE;YACjB,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE;YACpC,IAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YAChC,WAAW,CAAC,IAAI,GAAG,eAAe,CAAC;YACnC,WAAW,CAAC,SAAS,GAAG,gEAAgE,CAAC;YACzF,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;YAC1B,WAAW,CAAC,WAAW,GAAG,EAAE,CAAC;YAC7B,WAAW,CAAC,aAAa,GAAG,KAAK,CAAC;YAClC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;YAC/B,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SAC/B;IACH,CAAC;IACD,+DAAqC,GAArC,UAAsC,KAAiB;QACrD,IAAM,IAAI,GAAG,IAAI,CAAC,wBAAwB,CACxC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,KAAK,EAC7C,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,KAAK,CAC1C,CAAC;QACF,IAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAC9D,QAAQ,CAAC,UAAU,EAAE,CAAC;SACvB;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAAE,OAAO;QACrE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACO,8CAAoB,GAA5B,UAA6B,KAAiB;QAC5C,IAAM,gBAAgB,GAA0B,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACpF,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAClC,IAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBAAE,SAAS;YACpC,IAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7B,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,IAAI,UAAU;gBAAE,OAAO,IAAI,CAAC;SACvD;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACO,8CAAoB,GAA5B,UAA6B,IAAY;QACvC,OAAiB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IACO,kDAAwB,GAAhC,UAAiC,YAAoB,EAAE,QAAgB;QACrE,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE;YACtD,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;SAC/D;QACD,IAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE;YACvC,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtD;QACD,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,YAAY,CAAC;SACrB;QACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;YAC5B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC1B;QACD,IAAM,IAAI,GAAG,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtG,6CAA6C;QAC7C,4BAA4B;QAC5B,IAAI;QACJ,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE;YACvC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;SACpB;QACD,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,IAAI,OAAO,EAAE;YACjC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE;gBACjE,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;aACxB;SACF;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9B,CAAC;IACO,+CAAqB,GAA7B,UAA8B,KAAiB;QAC7C,IAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY;YAAE,OAAO;QAC1B,IAAM,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACrF,IAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,IAAM,gBAAgB,GAA0B,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACpF,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAC9B,IAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;QACzC,IAAI,wBAAwB,GAAG,IAAI,CAAC;QACpC,IAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAM,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,0DAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACzG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;YAC3C,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;YAC3C,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE;gBAC1B,wBAAwB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aACjD;SACF;QACD,IAAI,CAAC,wBAAwB,EAAE;YAC7B,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;SAChE;IACH,CAAC;IACO,8CAAoB,GAA5B,UAA6B,KAAiB;QAC5C,IAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC/D,IAAM,mBAAmB,GAAG,KAAK,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACnE,IAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAC7D,IAAM,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAM,eAAe,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;QAC3E,IAAM,OAAO,GAAG,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;QACvE,IAAI,CAAC,OAAO,EAAE;YACZ,mBAAmB,CAAC,QAAQ,GAAG,MAAM,CAAC;YACtC,mBAAmB,CAAC,KAAK,GAAG,KAAK,CAAC;SACnC;QAED,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC;QAC/B,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAE7C,gBAAgB,CAAC,QAAQ,GAAG,MAAM,CAAC;QACnC,gBAAgB,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAEzD,IAAI,CAAC,CAAC,aAAa,EAAE;YACnB,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC;YAChC,aAAa,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD;IACH,CAAC;IACD,sBAAY,4CAAe;aAA3B,cAAwC,OAAO,0DAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;;;OAAA;IACxE,iDAAuB,GAA/B,UAAgC,OAAyB;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;gBACxB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aACzB;SACF;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACO,sCAAY,GAApB;QACE,IAAI,CAAC,cAAc,CACjB,IAAI,mBAAmB,EAAE,EACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAChD,CAAC;IACJ,CAAC;IACO,6CAAmB,GAA3B,UAA4B,KAAiB,EAAE,IAAY;QACzD,IAAI,IAAI,IAAI,cAAc,EAAE;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAC9B,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;aAClE;SACF;QACD,IAAI,IAAI,IAAI,UAAU,EAAE;YACtB,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,CAAC;SACnD;QACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACO,oDAA0B,GAAlC,UAAmC,OAAY;QAC7C,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,8BAA8B,CAAC;QAE7D,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE;YAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;YACxC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,sDAAsD,CAAC;SACtF;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE;YAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;YACxC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,kDAAkD,CAAC;YACjF,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,2BAA2B,CAAC;YAC5D,OAAO,CAAC,UAAU,CAAC,OAAO,GAAG,2BAA2B,CAAC;SAC1D;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;YACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;YACxC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,kDAAkD,CAAC;SAClF;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE;YAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC;YACxC,OAAO,CAAC,UAAU,CAAC,QAAQ,IAAI,sCAAsC,CAAC;SACvE;QACD,iEAAiE;QACjE,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE;YAC7C,2EAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,UAAU,CAAC,QAAQ,IAAI,2BAA2B,CAAC;YAC3D,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,2BAA2B,CAAC;SAC7D;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;YACrC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,yBAAyB,CAAC;YACrD,OAAO,CAAC,UAAU,CAAC,SAAS,IAAI,+BAA+B,CAAC;YAChE,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,iBAAiB,CAAC;YAClD,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,mEAAmE,CAAC;YACtG,OAAO,CAAC,UAAU,CAAC,iBAAiB,GAAG,2CAA2C,CAAC;YACnF,OAAO,CAAC,UAAU,CAAC,gBAAgB,GAAG,4CAA4C,CAAC;SACpF;IACH,CAAC;IACO,wCAAc,GAAtB,UAAuB,OAAY;QACjC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACjE,IAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC;YAC9G,OAAO,CAAC,QAAQ,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAClH,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,eAAK;gBAC7B,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACO,kCAAQ,GAAhB;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,EAAE,IAAI,IAAI,sEAAkB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACvH,CAAC;IAEO,wCAAc,GAAtB,UAAuB,UAAkB;QACvC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;IACjC,CAAC;IACO,qCAAW,GAAnB,UAAoB,UAAkB;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;YAAE,OAAO;QACjE,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IAC5B,CAAC;IACO,2CAAiB,GAAzB,UAA0B,UAAkB;QAC1C,OAAO,eAAe,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IACH,sBAAC;AAAD,CAAC,CA/tBoC,+DAAwB,GA+tB5D;;;;;;;;;;;;;;;;;;;;;ACp7BgB;AACoC;AAGrD;IAAkD,8FAAkB;IAApE;;IAmBA,CAAC;IAlBQ,0CAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IACnC,CAAC;IACM,8CAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IACM,yDAAkB,GAAzB,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,QAAQ,CAAC,UAAU,EAAE,CAAC;IACxB,CAAC;IACH,mCAAC;AAAD,CAAC,CAnBiD,yDAAkB,GAmBnE;;AACD;IAAiD,6FAA4B;IAA7E;;IAuBA,CAAC;IAtBQ,yCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;IAClC,CAAC;IACM,6CAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,kBAAkB,EAAE,KAAK;YACzB,QAAQ,EAAE,OAAO,CAAC,gCAAgC,KAAK,KAAK;SAC7D,CAAC;IACJ,CAAC;IACM,+DAAyB,GAAhC,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,OAAO,IAAI,iEAAe,CAAO,GAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IACH,kCAAC;AAAD,CAAC,CAvBgD,4BAA4B,GAuB5E;;AAED,mEAA4B,CAAC,QAAQ,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;AAC1E,mEAA4B,CAAC,QAAQ,CAAC,IAAI,2BAA2B,EAAE,CAAC,CAAC;;;;;;;;;;;;;ACvDzE;AAAA;AAAA;AAAA;IAAA;IA6DA,CAAC;IAxDQ,wCAAK,GAAZ,UAAa,IAAY;QACvB,IAAG,CAAC,wBAAwB,CAAC,SAAS,EAAE;YACtC,wBAAwB,CAAC,SAAS,GAAG,mBAAmB,CAAC;YACzD,wBAAwB,CAAC,WAAW,GAAG,aAAa,CAAC;YACrD,wBAAwB,CAAC,SAAS,GAAG,aAAa,CAAC;YACnD,wBAAwB,CAAC,SAAS,GAAG,gCAAgC,CAAC;SACvE;QACD,IAAM,UAAU,GAAG,UAAC,IAAY,EAAE,GAAW,EAAE,SAAiB,EAAE,KAAa;YAC7E,IAAG,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACrB,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzC,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACvD,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YACjE,IAAM,MAAM,GAAG,eAAe,GAAG,SAAS,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;YACzE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,IAAM,WAAW,GAAG,UAAC,IAAY,EAAE,KAAa;YAC9C,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,KAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAG,EAAE;gBAClC,IAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;oBAAE,OAAO,KAAK,CAAC;gBACrD,IAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,SAAS;oBAAE,OAAO,IAAI,CAAC;gBAC7C,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;aAC7B;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,IAAM,UAAU,GAAG,UAAC,IAAY,EAAE,GAAW,EAAE,SAAiB,EAAE,KAAa;YAC7E,IAAG,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACrB,IAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,IAAG,KAAK,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAE1B,IAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3C,IAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACzD,IAAM,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,0BAA0B,GAAG,OAAO,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;YAC5G,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5F,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/F,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC3F,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;QAC1F,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACO,0CAAO,GAAf,UAAgB,EAAU,EAAE,IAAY,EAAE,SAAiB,EAAE,KAAa,EAAE,WAAoF;QAC9J,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7D,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAG,EAAE;YACtC,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;SACvD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,gDAAa,GAArB,UAAsB,IAAY;QAChC,IAAM,EAAE,GAAG,IAAI,CAAC;QAChB,IAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IACH,+BAAC;AAAD,CAAC;;AAEM,SAAS,wBAAwB,CAAC,IAAY;IACnD,OAAO,IAAI,wBAAwB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;;;;;;;;;;;;;;;;;;;;;;ACjE2F;AACzC;AAEQ;AAE3D;IAAyC,qFAAwB;IAqC/D,6BACS,OAAmB,EAC1B,OAAqC,EAC3B,SAA0B,EAC1B,KAAyB;QAFnC,wCAAqC;QAC3B,8CAA0B;QAC1B,kCAAyB;QAJrC,YAME,kBAAM,OAAO,CAAC,SAwBf;QA7BQ,aAAO,GAAP,OAAO,CAAY;QAEhB,eAAS,GAAT,SAAS,CAAiB;QAC1B,WAAK,GAAL,KAAK,CAAoB;QAGnC,KAAI,CAAC,YAAY,GAAyB,CACxC,KAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAC9C,CAAC;QACF,KAAI,CAAC,UAAU,EAAE,CAAC;QACjB,KAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAsB,CAAC,WAAW;YAC7E,sEAAkB,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC1D,KAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACrD,IAAM,eAAe,GAAG,KAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACzD,IAAI,eAAe,GAAG,CAAC,EAAE;gBACvB,IAAI,YAAY,GAAG,KAAI,CAAC,eAAe,EAAE,CAAC;gBAC1C,IAAI,eAAe,GAAG,YAAY,EAAE;oBAClC,OAAO,CAAC,KAAK,GAAG,sEAAkB;yBAC/B,SAAS,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;iBACxF;gBACD,OAAO;aACR;YACD,IAAI,CAAC,KAAI,CAAC,aAAa;gBAAE,OAAO;YAChC,IAAI,WAAW,GAAG,KAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7C,IAAI,CAAC,CAAC,WAAW,EAAE;gBACjB,OAAO,CAAC,KAAK,GAAG,sEAAkB;qBAC/B,SAAS,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC;aACnE;QACH,CAAC,CAAC,CAAC;;IACL,CAAC;IAhEgB,6CAAyB,GAA1C,UACE,IAAgB,EAChB,GAAe,EACf,KAAoB;QAEpB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;SACnD;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;YAC5B,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5B;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;SACjE;IACH,CAAC;IAEa,mCAAe,GAA7B,UACE,IAAgB,EAChB,GAAe,EACf,KAAyB;QAAzB,kCAAyB;QAEzB,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;gBACjB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAkCS,2CAAa,GAAvB;QACE,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,UAAU;oBAChB,aAAa,EAAE,QAAQ;oBACvB,IAAI,EAAE,EAAE;iBACT;aACF;SACF,CAAC;IACJ,CAAC;IAES,qDAAuB,GAAjC;QACE,OAAO,YAAY,CAAC;IACtB,CAAC;IAEM,mCAAK,GAAZ;QACE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAClD,IAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/D,mBAAmB,CAAC,eAAe,CAAM,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAES,qDAAuB,GAAjC,UAAkC,IAAY;QAC5C,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,SAAS;YACxB,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,qDAAS,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,SAAS,GAAG,sDAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,CAAC;gBACzB,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAW,wCAAO;aAAlB;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;;;OAAA;IAES,6CAAe,GAAzB;QACE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,CAAC,GAAG;gBAAE,GAAG,EAAE,CAAC;SAClB;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,sBAAc,8CAAa;aAA3B;YACE,OAAO,sDAAU,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;QACzE,CAAC;;;OAAA;IAES,iDAAmB,GAA7B;QACE,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,qDAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;SACtB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,wCAAU,GAAjB;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAC5B,CAAC;IAES,0CAAY,GAAtB,UAAuB,IAAI,EAAE,IAAY,EAAE,gBAAwB;QACjE,IAAI,IAAI,GAAW,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;YACtB,IAAI,IAAI,KAAK,YAAY,EAAE;gBACzB,IAAI,IAAI,IAAI,OAAO;oBAAE,OAAO;gBAC5B,IAAI,GAAG,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvD;iBAAM;gBACL,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;aACtB;YACD,IAAI,CAAC,CAAC,GAAG,EAAE;gBACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE;oBACzC,IAAI,IAAI,qDAAS,CAAC,SAAS,CAAC;iBAC7B;gBACD,IAAI,IAAI,GAAG,CAAC;gBACZ,gBAAgB,GAAG,CAAC,CAAC;aACtB;iBAAM;gBACL,gBAAgB,EAAE,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAES,qDAAuB,GAAjC;QAAA,iBAOC;QANC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,IAAI;YACxB,IAAI,IAAI;gBAAE,IAAI,IAAI,IAAI,CAAC;YACvB,IAAI,IAAI,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACH,0BAAC;AAAD,CAAC,CAjLwC,+DAAwB,GAiLhE;;AAED;IAAqC,iFAAmB;IAmBtD,yBACS,OAAyB,EAChC,OAAqC,EAC3B,SAA+B,EAC/B,KAAwC;QAFlD,wCAAqC;QAC3B,mDAA+B;QAC/B,iCAAwB,OAAO,EAAE,MAAM,CAAC;QAJpD,YAME,kBAAM,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAC1C;QANQ,aAAO,GAAP,OAAO,CAAkB;QAEtB,eAAS,GAAT,SAAS,CAAsB;QAC/B,WAAK,GAAL,KAAK,CAAmC;;IAGpD,CAAC;IAzBa,mCAAmB,GAAjC,UACE,IAAsB,EACtB,GAAqB,EACrB,KAAyB;QAAzB,kCAAyB;QAEzB,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBACjC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aAC9B;YACD,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;gBACjB,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,MAAM;oBAAE,OAAO;gBAC9C,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAWM,+BAAK,GAAZ;QACE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAClD,IAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/D,eAAe,CAAC,mBAAmB,CAAM,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAES,iDAAuB,GAAjC;QAAA,iBAQC;QAPC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,IAAI;YACxB,IAAI,IAAI;gBAAE,IAAI,IAAI,IAAI,CAAC;YACvB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;YACnB,IAAI,IAAI,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACH,sBAAC;AAAD,CAAC,CA7CoC,mBAAmB,GA6CvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjNoB;AACoD;AACrB;AACmB;AAIhC;AAMV;AACiB;AACH;AACK;AAEoD;AACpC;AAEhE,SAAS,iBAAiB,CAAC,MAAW;IACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClF,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7D,CAAC;AAED,2DAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAOnE,SAAS,4BAA4B,CAC1C,IAAS,EACT,cAA8B,EAC9B,iBAAiC;IADjC,sDAA8B;IAC9B,4DAAiC;IAEjC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACpC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;IACzC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACjC,IAAI,iBAAiB,EAAE;QACrB,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;KACrC;IACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,IAAI,cAAc,EAAE;QAClB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;KAClC;IACD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACzB,CAAC;AAED;IAEE,kCACY,OAAqC,EAC/C,OAAuB;QADb,wCAAqC;QAC/C,wCAAuB;QADb,YAAO,GAAP,OAAO,CAA8B;QAG/C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,2EAAyB,EAAE,CAAC;SAChD;QACD,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;IACH,CAAC;IACS,8CAAW,GAArB;QACE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7C,CAAC;IACD,sBAAW,gDAAU;aAArB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;;;OAAA;IACM,4CAAS,GAAhB;QACE,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IACS,+CAAY,GAAtB;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAChC,4BAA4B,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACzE,CAAC;IAIM,0CAAO,GAAd;QACE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;YACrB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;SAC3B;IACH,CAAC;IACH,+BAAC;AAAD,CAAC;;AAgEM,IAAI,4BAA4B,GAAG;IACxC,OAAO,EAAE,IAAI,KAAK,EAAuB;IACzC,OAAO,EAAE,EAAE;IACX,SAAS,EAAT;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IACD,QAAQ,EAAR,UAAS,MAA2B;QAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,SAAS,EAAT,UAAU,IAAwB,EAAE,OAAgB;QAClD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,CAAC,CAAC,OAAO,EAAE;YACb,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,IAAI,IAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,IAAE,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;oBAAE,OAAO,IAAE,CAAC;aACtC;SACF;QACD,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,WAAW,EAAX,UACE,IAAwB,EACxB,SAA0B;QAA1B,6CAA0B;QAE1B,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IACE,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,EAC7C;gBACA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;gBAC3B,OAAO,EAAE,CAAC;aACX;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAP,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B,EAC9B,OAAgB;QAEhB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IACD,SAAS,EAAT,UAAU,GAAS,EAAE,QAAkB,EAAE,IAAwB,EAAE,OAA8B;QAC/F,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE;YAC5B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;SAC7C;IACH,CAAC;IACD,aAAa,EAAb,UAAc,GAAS,EAAE,QAAkB,EAAE,IAAwB,EAAE,KAAU;QAC/E,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE;YAChC,OAAO,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;SACtD;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,qBAAqB,EAArB,UAAsB,GAAS,EAAE,IAAwB,EAAE,UAAe;QACxE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,qBAAqB,EAAE;YACxC,GAAG,CAAC,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;SAClD;IACH,CAAC;IACD,mBAAmB,EAAnB,UAAoB,GAAS,EAAE,IAAwB,EAAE,OAAY;QACnE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE;YACtC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SACxD;IACH,CAAC;IACD,wBAAwB,EAAxB,UAAyB,GAAS,EAAE,IAAwB,EAAE,OAAY;QACxE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,wBAAwB,EAAE;YAC3C,GAAG,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SAC5C;QACD,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,CAAC,GAAG,EAAE;YACT,IAAI,YAAY,GAAG,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC7D,IAAI,CAAC,CAAC,YAAY,EAAE;gBAClB,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;aAClD;SACF;IACH,CAAC;IACD,sBAAsB,EAAtB,UACE,GAAS,EACT,IAAwB,EACxB,GAA0B;QAE1B,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,sBAAsB,EAAE;YACzC,OAAO,GAAG,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAC7C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,oBAAoB,EAApB,UACE,GAAS,EACT,IAAwB,EACxB,OAAY,EACZ,UAA+B;QAE/B,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,oBAAoB,EAAE;YACvC,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;SACpD;IACH,CAAC;IACD,0BAA0B,EAA1B,UAA2B,GAAS,EAClC,IAAwB,EACxB,OAAY;QACZ,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,0BAA0B,EAAE;YAC7C,GAAG,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SAC9C;IACH,CAAC;IACD,yBAAyB,EAAzB,UAA0B,GAAS,EAAE,IAAwB,EAAE,OAAY;QACzE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,yBAAyB,EAAE;YAC5C,GAAG,CAAC,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SAC7C;IACH,CAAC;IACD,cAAc,EAAd,UAAe,GAAS,EAAE,IAAwB,EAAE,QAAkB;QACpE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE;YACjC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;SACzC;IACH,CAAC;IACD,oBAAoB,EAApB,UAAqB,GAAS,EAAE,IAAwB,EAAE,QAAkB;QAC1E,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,oBAAoB,EAAE;YACvC,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;SAC/C;IACH,CAAC;CACF,CAAC;AAEF;IACE,yCAAmB,GAAS,EAAU,OAA8B;QAAjD,QAAG,GAAH,GAAG,CAAM;QAAU,YAAO,GAAP,OAAO,CAAuB;IAAI,CAAC;IAClE,mEAAyB,GAAhC,UAAiC,OAAO;QACtC,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnC,IAAM,MAAM,GAAG,4BAA4B,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnC,IAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,CAAC,MAAM,CAAC,qBAAqB,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5J,IAAI,QAAQ,EAAE;YACZ,OAAO,CAAC,IAAI,CACV,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CACjE,CAAC;SACH;QACD,IAAU,QAAS,CAAC,cAAc,KAAK,KAAK,EAAE;YAC5C,IAAI,CAAC,CAAC,MAAM,CAAC,yBAAyB,EAAE;gBACtC,IAAI,OAAO,EAAE;oBACX,OAAO;wBACL,CAAC,MAAM,CAAC,4BAA4B;4BACpC,MAAM,CAAC,4BAA4B,CACjC,IAAI,CAAC,GAAG,EACR,QAAQ,EACR,OAAO,CAAC,QAAQ,EAChB,IAAI,CAAC,OAAO,CACb,CAAC;iBACL;gBACD,OAAO,CAAC,IAAI,CACV,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAClE,CAAC;aACH;SACF;QACD,IAAI,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,CAAC,UAAU,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC1B;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;SAChC;IACH,CAAC;IACO,gEAAsB,GAA9B,UACE,MAA2B,EAC3B,QAA4B,EAC5B,QAAkB,EAClB,OAAgB;QAJlB,iBA0BC;QApBC,OAAO;YACL,EAAE,EAAE,qBAAqB;YACzB,KAAK,EAAE,wEAAY,CAAC,UAAU,CAAC;YAC/B,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,2BAA2B;YACrC,OAAO,EAAE,OAAO;YAChB,OAAO,EAAO,IAAI,2DAAe,CAAU;gBACzC,IAAM,aAAa,GAAS,QAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACzD,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACnF,CAAC,CAAC;YACF,MAAM,EAAE;gBACN,MAAM,CAAC,kBAAkB,CACjB,QAAS,CAAC,GAAG,EACnB,QAAQ,EACR,QAAQ,EACR,KAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IACO,iEAAuB,GAA/B,UACE,MAA2B,EAC3B,QAA4B,EAC5B,QAAkB;QAElB,OAAO,MAAM,CAAC,uBAAuB,CACnC,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAEO,iEAAuB,GAA/B,UACE,MAA2B,EAC3B,QAA4B,EAC5B,QAAkB,EAClB,OAAgB;QAJlB,iBAiBC;QAXC,IAAI,WAAW,GAAG;YAChB,EAAE,EAAE,qBAAqB;YACzB,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa;YAC9D,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,wEAAY,CAAC,SAAS,CAAC;YAC9B,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE;gBACN,OAAO,KAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAClE,CAAC;SACF,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;IACO,kEAAwB,GAAhC,UAAiC,QAAkB;QAAnD,iBAeC;QAdC,IAAI,CAAC,QAAQ,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QACvC,IAAM,MAAM,GAAG,IAAI,kDAAM,CAAC;YACxB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,QAAQ,CAAC,WAAW;YAC7B,EAAE,EAAE,oBAAoB;YACxB,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;YAC9C,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE;gBACN,QAAQ,CAAC,mBAAmB;oBAC1B,QAAQ,CAAC,mBAAmB,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;gBACrE,MAAM,CAAC,QAAQ,GAAG,KAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACzD,CAAC;SACF,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IACO,+DAAqB,GAA7B,UAA8B,QAAkB;QAC9C,OAAO,QAAQ,CAAC,mBAAmB,IAAI,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACjG,CAAC;IACH,sCAAC;AAAD,CAAC;;AAED;IA0BE,+BACS,GAAS,EACR,OAAqC,EACrC,SAAsB,EACtB,cAAyC,EACzC,UAA4C;QAH5C,wCAAqC;QACrC,4CAAsB;QACtB,sDAAyC;QACzC,8CAA4C;QAJ7C,QAAG,GAAH,GAAG,CAAM;QACR,YAAO,GAAP,OAAO,CAA8B;QACrC,cAAS,GAAT,SAAS,CAAa;QACtB,mBAAc,GAAd,cAAc,CAA2B;QACzC,eAAU,GAAV,UAAU,CAAkC;IAClD,CAAC;IA/BS,wCAAkB,GAAhC,UACE,IAAwB,EACxB,OAA8B,EAC9B,GAAS,EACT,SAAe,EACf,cAAkC;QAElC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxB,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,EAAE;YACtB,GAAG,GAAG,OAAO,CAAC,4BAA4B,CACxC,GAAG,EACH,IAAI,EACJ,GAAG,EACH,SAAS,EACT,cAAc,CACf,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACa,0CAAoB,GAAlC,UAAmC,GAAS;QAC1C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACxC,OAAO,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC;IASM,sCAAM,GAAb,UAAc,QAAyB,EAAE,OAA2B;QAAtD,2CAAyB;QAAE,6CAA2B;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACM,iDAAiB,GAAxB,UAAyB,SAAiB,EAAE,KAAoB;QAC9D,IAAI,GAAG,GAAe,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,CAAC,UAAU,EAAE;gBAChB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACtB;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACM,6CAAa,GAApB,UAAqB,KAAqB,EAAE,WAA4B,EAAE,OAA2B;QAAzD,iDAA4B;QAAE,6CAA2B;QACnG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACO,kDAAkB,GAA1B,UAA2B,KAAqB;QAC9C,IAAI,UAAU,GAAG,sDAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,KAAK,GAAQ,EAAE,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;SAC3C;QACD,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACjB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACzB,IAAI,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,eAAe,CAAC;YACzC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE;gBACpB,CAAC,CAAC,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,CAAC;aACnE;YACD,CAAC,CAAC,mBAAmB,GAAG,QAAQ,CAAC;YACjC,IAAI,QAAQ,GAAG,sEAAkB,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACpG,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACd,CAAC,CAAC,WAAW,GAAG,QAAQ,CAAC;aAC1B;YACD,4BAA4B,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;SACjE;IACH,CAAC;IACO,oDAAoB,GAA5B,UACE,IAAwB,EACxB,QAAqB;QAArB,wCAAqB;QAErB,OAAO,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAC3C,IAAI,CAAC,GAAG,EACH,IAAI,EACT,QAAQ,EACR,IAAI,CAAC,SAAS,EACT,IAAI,CAAC,cAAc,CACzB,CAAC;IACJ,CAAC;IACO,kDAAkB,GAA1B,UAA2B,IAAwB;QACjD,OAAO,qBAAqB,CAAC,kBAAkB,CAC7C,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,CACpB,CAAC;IACJ,CAAC;IACO,+CAAe,GAAvB;QACE,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc;YAC3C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAClC,IAAI,QAAQ,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChE,OAAO,SAAS,CAAC;IACnB,CAAC;IACO,0CAAU,GAAlB,UAAmB,WAAoB,EAAE,OAA2B;QAA3B,6CAA2B;QAClE,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACd,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,SAAS,KAAK,WAAW;gBAAE,SAAS,IAAI,IAAI,CAAC;YACjD,SAAS,IAAI,GAAG,GAAG,QAAQ,CAAC;SAC7B;QACD,IAAI,UAAU,GAAG,IAAI,oFAAwB,CAC3C,IAAI,CAAC,GAAG,EACR,IAAI,EACJ,SAAS,EACT,SAAS,EACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,IAAI,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK;gBAAE,SAAS;YACxC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,GAAQ;YACd,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;YACtB,IAAI,GAAG,IAAI,0DAAe,CAAC,YAAY,CAAC,cAAc,IAAI,WAAW,EAAE;gBACrE,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5B;aACF;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aACjC;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,gDAAgB,GAAxB,UAAyB,GAAsC,EAAE,OAAe;QAC9E,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAC/B,OAAO,CAAC,QAAQ,EACrB,OAAO,CAAC,KAAK,EACb,KAAK,EACL,OAAO,CACR,CAAC;YACF,IAAI,OAAO,CAAC,UAAU,EAAE;gBACtB,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC9E;aACF;YACD,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACO,4DAA4B,GAApC,UAAqC,IAAS;QAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;IACzB,CAAC;IACO,+CAAe,GAAvB,UAAwB,QAAgB,EAAE,KAAa;QACrD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC;YAC1C,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IACO,kDAAkB,GAA1B,UACE,IAAwB,EACxB,KAAa,EACb,QAAyB,EACzB,OAAe;;QADf,2CAAyB;QAGzB,IAAI,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,IAAI,GAAG,4BAA4B,CAAC,OAAO,CAC7C,IAAI,CAAC,GAAG,EACR,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,OAAO,CACR,CAAC;QACF,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,iBAAiB,GAAG,sEAAkB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEhD,IAAM,SAAS,GAAG,gGAA8B,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,0CAAE,UAAU,CAAC,MAAM,CAAC,kBAAQ,IAAI,eAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,EAA9B,CAA8B,EAAE,CAAC,CAAwB,CAAC;QACzK,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,WAAW,EAAE;YAC1D,IAAI,CAAC,WAAW,GAAG,sEAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;SAChF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,qDAAqB,GAA7B,UAA8B,SAAiB,EAAE,QAAgB;QAC/D,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,IAAI,GAAG,sDAAU,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC/B;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;YACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE;YACnC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC5B;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,4BAA4B,CAAC;SAC/C;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;YAChC,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,iDAAiB,GAAzB,UACE,IAAwB,EACxB,QAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChC,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;IAClE,CAAC;IACO,6CAAa,GAArB,UAAsB,IAAY,EAAE,KAAa;QAC/C,IAAI,CAAC,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAC1B,OAAO,sEAAkB,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IACO,gDAAgB,GAAxB,UAAyB,IAAwB,EAAE,KAAa;QAC9D,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAChD,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACjD,OAAO,sEAAkB,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IACH,4BAAC;AAAD,CAAC;;AAED;IAgBE,2BACE,GAAgB,EAChB,OAAgE;QADhE,gCAAgB;QAChB,wCAAqC,2EAAyB,EAAE;QAkS1D,mBAAc,GAAG,KAAK,CAAC;QAhS7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IATM,mCAAO,GAAd;QACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAQD,sBAAW,kCAAG;aAAd;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aACD,UAAe,KAAW;YACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;gBAAE,OAAO;YACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;;;OAJA;IAKM,0CAAc,GAArB,UAAsB,YAAoB,EAAE,KAAY;QAAZ,oCAAY;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,KAAK,GAAe,MAAM,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,KAAK,KAAK,QAAQ,CAAC,MAAM,EAAE;gBAC7B,KAAK,CAAC,MAAM,EAAE,CAAC;aAChB;iBAAM;gBACL,KAAK,CAAC,QAAQ,EAAE,CAAC;aAClB;SACF;QACD,IAAI,KAAK,EAAE;YACT,QAAQ,CAAC,KAAK,EAAE,CAAC;SAClB;IACH,CAAC;IACO,4CAAgB,GAAxB,UAAyB,KAAW,EAAE,YAAoB;QACxD,IAAI,IAAI,CAAC,yBAAyB,EAAE;YAClC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;SACrD;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IACO,kCAAM,GAAd,UAAe,KAAW;QAA1B,iBA6GC;QA5GC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG;YACjC,CAAC,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;YACtD,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB;YAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAClC,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG;YACnC,CAAC,CAAC,IAAI,+BAA+B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;YAC7D,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;SACvB;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,SAAS,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,kFAAe,CAAC;QACvC,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QACtB,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAC7D,IAAI,EACJ,KAAK,CACN,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,iBAAiB,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YAC7C,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YAC9C,KAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACjD,KAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACxD,KAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAC5D,KAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACxC,IAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC3B,KAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,KAAI,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACrD,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YAClD,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACxD,KAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACnD,KAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACvD,KAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACrD,OAAO,CAAC,KAAK,GAAG,KAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YAClD,OAAO,CAAC,KAAK,GAAG,KAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YAC/C,KAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACpD,KAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACzD,KAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACpD,KAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;gBAClC,OAAO,CAAC,IAAI,GAAG,oFAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACvD;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;QAClC,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC;QACD,IAAI,CAAC,+BAA+B,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YAC7C,IAAI,KAAI,CAAC,sBAAsB,KAAK,OAAO,CAAC,KAAK,EAAE;gBACjD,IAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC3E,KAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,KAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC;aAC7C;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YAChD,KAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvD,KAAI,CAAC,sBAAsB,GAAe,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,CAAC,cAAc,GAAG,KAAK,EAAxB,CAAwB,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1E,CAAC;IACD,sBAAW,sCAAO;aAAlB;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;aACD,UAAmB,GAA0B;YAC3C,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,2EAAyB,EAAE,CAAC;QACpE,CAAC;;;OAHA;IAID,sBAAW,qCAAM;aAAjB;YACE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;;;OAAA;IACM,oCAAQ,GAAf;QACE,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IACM,4CAAgB,GAAvB,UAAwB,IAAY;QAClC,IAAI,KAAK,GAAe,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,CAAC,KAAK,EAAE;YACX,KAAK,CAAC,QAAQ,EAAE,CAAC;SAClB;IACH,CAAC;IACM,0CAAc,GAArB,UAAsB,IAAY;QAChC,IAAI,KAAK,GAAe,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,CAAC,KAAK,EAAE;YACX,KAAK,CAAC,MAAM,EAAE,CAAC;SAChB;IACH,CAAC;IACM,iDAAqB,GAA5B;QACE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzB,MAAM,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,CAAC;SACpC;IACH,CAAC;IACM,+CAAmB,GAA1B;QACE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzB,MAAM,CAAC,CAAC,CAAE,CAAC,MAAM,EAAE,CAAC;SAClC;IACH,CAAC;IACS,wCAAY,GAAtB,UAAuB,IAAS;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC1D,CAAC;IACS,yCAAa,GAAvB;QACE,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,4BAA4B,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,GAAG,CAAC;IACb,CAAC;IACO,iDAAqB,GAA7B,UAA8B,GAAS,EAAE,QAAkB,EAAE,IAAwB,EAAE,GAAQ;QAC7F,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,mDAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE;YACxF,OAAO,sEAAkB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;SAC3D;QACD,IAAM,WAAW,GAAG,4BAA4B,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACzF,IAAI,CAAC,CAAC,WAAW;YAAE,OAAO,WAAW,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;IACO,8CAAkB,GAA1B,UAA2B,OAAY;QACrC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;YAAE,OAAO;QAC9B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACrF,CAAC;IACO,2CAAe,GAAvB,UAAwB,OAAY;QAClC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,mDAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC3F,IAAI,eAAe,GAAG;YACpB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;YAC7B,KAAK,EAAE,OAAO,CAAC,QAAQ;YACvB,QAAQ,EAAE,OAAO,CAAC,KAAK;YACvB,YAAY,EAAE,KAAK;SACpB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE;YACzB,IAAM,OAAO,GAAG,mDAAO,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpD,IAAG,OAAO,EAAE;gBACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;aAClC;YACD,CAAC,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC;SACnC;IACH,CAAC;IACO,0CAAc,GAAtB,UAAuB,OAAY;QAAnC,iBAsBC;QArBC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;YAAE,OAAO;QAC9B,IAAG,CAAC,CAAC,oBAAoB,CAAC,EAAE;YAC1B,CAAC,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC;SACjC;QACD,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,UAAC,IAAY,IAAiB,OAAO,KAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC1G,UAAC,IAAY,IAAY,OAAO,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,4BAA4B,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrE,IACE,CAAC,CAAC,IAAI,CAAC,iBAAiB;YACxB,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB;YACvC,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC,KAAK,EACrC;YACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;gBACjB,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC7D,IAAI,CAAC,CAAC,QAAQ,EAAE;oBACd,QAAQ,CAAC,KAAK,EAAE,CAAC;iBAClB;aACF;SACF;IACH,CAAC;IACO,oDAAwB,GAAhC,UAAiC,QAAkB,EAAE,gBAA4C,EAC/F,cAAqC;QACrC,IAAM,IAAI,GAA6B,QAAS,CAAC,QAAQ,CAAC;QAC1D,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC;YACvC,IAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,mDAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;gBAChD,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC;aACpB;YACD,4BAA4B,CAAC,oBAAoB,CACzC,QAAS,CAAC,GAAG,EACb,CAAE,CAAC,QAAQ,EACjB,CAAC,CACF,CAAC;SACH;IACH,CAAC;IACO,0DAA8B,GAAtC,UAAuC,MAAgB;QACrD,IAAM,GAAG,GAAe,MAAO,CAAC,GAAG,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAM,QAAQ,GAA6B,MAAO,CAAC,QAAQ,CAAC;QAC5D,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,sBAAsB,EAAE;YACjD,QAAQ,CAAC,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SAC9C;IACH,CAAC;IACO,2DAA+B,GAAvC;QACE,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SACnD;IACH,CAAC;IACO,iDAAqB,GAA7B,UAA8B,OAAY;QACxC,4BAA4B,CAAC,qBAAqB,CAChD,IAAI,CAAC,GAAG,EACR,OAAO,CAAC,QAAQ,CAAC,QAAQ,EACzB,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,+CAAmB,GAA3B,UAA4B,OAAY;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,4BAA4B,CAAC,mBAAmB,CAC9C,IAAI,CAAC,GAAG,EACR,OAAO,CAAC,QAAQ,CAAC,QAAQ,EACzB,OAAO,CACR,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QACjC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,IAAI,GAAG,sDAAU,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/E,OAAO,CAAC,YAAY,CAAC,QAAQ,GAAG,CAAC,YAAY,IAAI,qBAAqB,CAAC,kBAAkB,CACvF,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,GAAG,EACH,IAAI,CAAC,GAAG,EACR,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAC1B,CAAC;IACJ,CAAC;IACO,qDAAyB,GAAjC,UAAkC,OAAY;QAC5C,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,IAAI,eAAe,GAAG;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;YAC3B,YAAY,EAAE,OAAO,CAAC,UAAU;YAChC,KAAK,EAAE,OAAO,CAAC,QAAQ;YACvB,QAAQ,EAAE,OAAO,CAAC,KAAK;YACvB,YAAY,EAAE,KAAK;SACpB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC;IAC3C,CAAC;IACO,gDAAoB,GAA5B,UAA6B,OAAY;QACvC,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,IAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;YAAE,OAAO;QAC9B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAM,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxG,CAAC;IACO,gDAAoB,GAA5B,UAA6B,OAAY;QAAzC,iBASC;QARC,4BAA4B,CAAC,oBAAoB,CAC/C,IAAI,CAAC,GAAG,EACR,OAAO,CAAC,QAAQ,CAAC,QAAQ,EACzB,OAAO,EACP,UAAC,GAAS;YACR,KAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC,CACF,CAAC;IACJ,CAAC;IACO,sDAA0B,GAAlC,UAAmC,OAAY;QAC7C,4BAA4B,CAAC,0BAA0B,CACrD,IAAI,CAAC,GAAG,EACR,OAAO,CAAC,QAAQ,CAAC,QAAQ,EACzB,OAAO,CACR,CAAC;IACJ,CAAC;IACO,qDAAyB,GAAjC,UAAkC,OAAY;QAC5C,4BAA4B,CAAC,yBAAyB,CACpD,IAAI,CAAC,GAAG,EACR,OAAO,CAAC,QAAQ,CAAC,QAAQ,EACzB,OAAO,CACR,CAAC;IACJ,CAAC;IACO,oDAAwB,GAAhC,UAAiC,OAAY;QAC3C,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,IAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,CAAC,YAAY,EAAE;YAClB,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,UAAC,IAAY,IAAiB,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACrH,UAAC,IAAY,IAAY,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClE;QACD,4BAA4B,CAAC,wBAAwB,CACnD,IAAI,CAAC,GAAG,EACR,OAAO,CAAC,QAAQ,CAAC,QAAQ,EACzB,OAAO,CACR,CAAC;IACJ,CAAC;IACO,mDAAuB,GAA/B,UAAgC,QAAkB,EAAE,GAA0B;QAC5E,IAAU,GAAI,CAAC,cAAc,KAAK,SAAS,EAAE;YAC3C,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;SACpD;QACD,OAAa,GAAI,CAAC,cAAc,CAAC;IACnC,CAAC;IACO,kDAAsB,GAA9B,UAA+B,QAAkB,EAAE,GAA0B;QAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAM,IAAI,CAAC,GAAG,EAAQ,QAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAChI,CAAC;IACO,iDAAqB,GAA7B,UAA8B,QAAkB,EAAE,GAA0B;QAC1E,IAAI,QAAQ,CAAC,QAAQ;YACnB,OAAO,KAAK,CAAC;QACf,IAAU,GAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;SACpD;QACD,OAAa,GAAI,CAAC,YAAY,CAAC;IACjC,CAAC;IACO,0DAA8B,GAAtC,UAAuC,QAAkB,EAAE,GAA0B;QACnF,IAAM,UAAU,GAAmC,EAAE,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAChI,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAM,IAAI,CAAC,GAAG,EACnD,QAAS,CAAC,QAAQ,EACxB,QAAQ,CAAC,KAAK,EACd,GAAG,CAAC,UAAU,EACd,UAAU,CACX,CAAC;QAEI,GAAI,CAAC,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC;QAC7C,GAAI,CAAC,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC;IACjD,CAAC;IACO,kDAAsB,GAA9B,UAA+B,QAAkB,EAAE,GAA0B;QAC3E,IAAI,GAAG,GAAG,4BAA4B,CAAC,sBAAsB,CAC3D,IAAI,CAAC,GAAG,EACF,QAAS,CAAC,QAAQ,EACxB,GAAG,CACJ,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,CACpC,IAAI,CAAC,GAAG,EACb,GAAG,CAAC,UAAU,EACd,GAAG,CACJ,CAAC;IACJ,CAAC;IACO,4CAAgB,GAAxB,UAAyB,OAAY;QACnC,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAClC,IAAI,sDAAU,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE;YAC1D,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAC9B,IAAI,CAAC,GAAG,EACb,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,EACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CACvB,CAAC;SACH;QACD,IAAI,sDAAU,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,EAAE;YACrE,IAAI,CAAC,OAAO,CAAC,mCAAmC,CACzC,IAAI,CAAC,GAAG,EACb,OAAO,CAAC,GAAG,CAAC,UAAU,EACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CACvB,CAAC;SACH;IACH,CAAC;IACH,wBAAC;AAAD,CAAC;;AAED;IACE;IAAgB,CAAC;IAOjB,oDAAuB,GAAvB,UACE,MAA2B,EAC3B,QAA4B,EAC5B,QAAkB,EAClB,OAA8B,EAC9B,OAA8C;QALhD,iBA6CC;QAtCC,IAAM,GAAG,GAAS,QAAS,CAAC,GAAG,CAAC;QAChC,IAAM,oBAAoB,GAAG,MAAM,CAAC,yBAAyB,CAC3D,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,OAAO,CACR,CAAC;QACF,IAAI,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAC;QACvC,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;YACjC,oBAAoB,CAAC,UAAU,CAAC,GAAG,GAAG,wDAAY,CAAC;SACpD;QACD,IAAI,CAAC,oDAAQ,CAAC,SAAS;YAAE,OAAO,oBAAoB,CAAC;QACrD,IAAM,iBAAiB,GAAG,8DAAkB,CAAC,aAAa,CAAC;QAC3D,IAAM,MAAM,GAAG,sEAAkB,CAAC,aAAa,CAAC;QAChD,8DAAkB,CAAC,aAAa,GAAG,MAAM,CAAC;QAC1C,IAAM,UAAU,GAAuB,oDAAQ,CAAC,SAAS,CACvD,QAAQ,EACR;YACE,MAAM,EAAE,oBAAoB,CAAC,UAAU;YACvC,KAAK,EAAE,oBAAoB,CAAC,UAAU;SACvC,EACD;YACE,KAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/E,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC,EACD;YACE,KAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChF,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,EACD,oBAAoB,EACpB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAC3D,CAAC;QACF,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,8DAAkB,CAAC,aAAa,GAAG,iBAAiB,CAAC;QACrD,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,CAAC,+BAA+B,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;QACnG,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACS,uDAA0B,GAApC,UAAqC,MAA2B,EAC9D,QAA4B,EAAE,QAAkB,EAChD,OAA8B;IAGhC,CAAC;IACS,wDAA2B,GAArC,UAAsC,MAA2B,EAC/D,QAA4B,EAAE,QAAkB,EAChD,OAA8B,EAAE,MAA0B;IAE5D,CAAC;IACM,8CAAiB,GAAxB;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,uDAA0B,GAA1B,UAA2B,GAAS,EAAE,OAAY;QAChD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAAE,OAAO;QACtC,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO;QAC1C,IAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO;QACtB,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,OAAO,EAAE;YAAE,OAAO;QACjF,OAAO,CAAC,UAAU,CAAC,QAAQ,IAAI,2BAA2B,CAAC;IAC7D,CAAC;IACH,yBAAC;AAAD,CAAC;;AAED;IAA+C,2FAAkB;IAAjE;;IAmBA,CAAC;IAlBQ,uCAAG,GAAV,UAAW,IAAwB,EAAE,OAAgB;QACnD,OAAO,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;IACzD,CAAC;IACM,2CAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,aAAa,EAAE,QAAQ;SACxB,CAAC;IACJ,CAAC;IACM,qDAAiB,GAAxB;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACH,gCAAC;AAAD,CAAC,CAnB8C,kBAAkB,GAmBhE;;AACD;IAA2D,8FAAkB;IAA7E;;IAOA,CAAC;IANW,sDAAe,GAAzB,UAA0B,IAAwB,EAAE,IAAS;QAC3D,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACH,mCAAC;AAAD,CAAC,CAP0D,kBAAkB,GAO5E;;AACD;IAA8C,0FAA4B;IAA1E;;IAqBA,CAAC;IApBQ,sCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;IAC/B,CAAC;IACM,4CAAS,GAAhB;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACM,0CAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,IAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE;YACvB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;SAChC;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACH,+BAAC;AAAD,CAAC,CArB6C,4BAA4B,GAqBzE;;AACD;IAA8C,0FAAkB;IAAhE;;IAkBA,CAAC;IAjBQ,sCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,qBAAqB,CAAC;IACrE,CAAC;IACM,0CAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,IAAI,GAAG,GAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC/B,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;SACzB;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC/B,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;SACzB;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACH,+BAAC;AAAD,CAAC,CAlB6C,kBAAkB,GAkB/D;;AAED;IAAiD,6FAAwB;IAAzE;;IAmBA,CAAC;IAlBQ,yCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,aAAa,IAAI,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;IAC5F,CAAC;IACM,+CAAS,GAAhB;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IACM,+CAAS,GAAhB,UAAiB,GAAS,EAAE,QAAkB,EAAE,IAAwB;QACtE,IAAM,cAAc,GAAG,UAAC,WAAmB,EAAE,UAAkB;YAC7D,IAAM,mBAAmB,GAAG,sDAAU,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;YAClF,IAAM,kBAAkB,GAAG,sDAAU,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;YAChF,IAAG,CAAC,mBAAmB,IAAI,CAAC,kBAAkB;gBAAE,OAAO,KAAK,CAAC;YAC7D,OAAO,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC1G,CAAC,CAAC;QACF,QAAQ,CAAC,qBAAqB,GAAG,UAAU,KAAU;YACnD,IAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YAC5E,OAAO,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3C,CAAC,CAAC;IACJ,CAAC;IACH,kCAAC;AAAD,CAAC,CAnBgD,wBAAwB,GAmBxE;;AACD;IAA4C,wFAA4B;IAAxE;;IAaA,CAAC;IAZQ,oCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;IAC9B,CAAC;IACM,wCAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;YAChC,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IACH,6BAAC;AAAD,CAAC,CAb2C,4BAA4B,GAavE;;AACD;IAA4C,wFAA4B;IAAxE;;IAaA,CAAC;IAZQ,oCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;IAC9B,CAAC;IACM,wCAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;YAChC,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IACH,6BAAC;AAAD,CAAC,CAb2C,4BAA4B,GAavE;;AACD;IAA6C,yFAAkB;IAA/D;;IAWA,CAAC;IAVQ,qCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAC9B,CAAC;IACM,yCAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;IACH,8BAAC;AAAD,CAAC,CAX4C,kBAAkB,GAW9D;;AACD;IAAmD,+FAAkB;IAArE;;IAsBA,CAAC;IArBQ,2CAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;IACjC,CAAC;IACM,+CAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IACM,iDAAS,GAAhB,UAAiB,GAAS,EAAE,QAAkB,EAAE,IAAwB;QACtE,QAAQ,CAAC,qBAAqB,GAAG,UAAU,GAAQ;YACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,EAAE,CAAC;YACnC,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,QAAQ,CAAC,mBAAmB,GAAG,UAAU,GAAQ;YAC/C,IAAI,CAAC,GAAG;gBAAE,OAAO,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,OAAO,GAAG,CAAC;YACpD,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;IACH,oCAAC;AAAD,CAAC,CAtBkD,kBAAkB,GAsBpE;;AAED;IAAgD,4FAAkB;IAAlE;;IAiJA,CAAC;IAhJQ,wCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;IACpD,CAAC;IACM,4CAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEzC,IAAI,IAAI,GAAQ;YACd,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC;gBAC3C,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,UAAU;YACd,OAAO,EAAE,OAAO;YAChB,kBAAkB,EAAE,KAAK;SAC1B,CAAC;QACF,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,+CAAU,GAAlB,UAAmB,GAAS,EAAE,IAAwB;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAC,OAAY,IAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IACO,mEAA8B,GAAtC,UAAuC,IAAwB,EAAE,OAAmB,EAAE,SAAc;QAClG,IAAM,cAAc,GAAc,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5E,IAAI,CAAC,CAAC,cAAc,EAAE;YACpB,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACpC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;YAC5B,IAAI,cAAc,CAAC,IAAI,EAAE;gBACvB,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC;aAChD;SACF;IACH,CAAC;IACD,sBAAc,8DAAsB;aAApC;YACE,OAAO,0DAAe,CAAC,YAAY,CAAC,cAAc,CAAC;QACrD,CAAC;;;OAAA;IACS,wDAAmB,GAA7B,UACE,IAAwB,EACxB,OAAmB;QAEnB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,IACE,CAAC,IAAI,CAAC,sBAAsB;YAC5B,CAAC,OAAO;YACR,OAAO,CAAC,MAAM,IAAI,CAAC;YACnB,OAAO,CAAC,MAAM,GAAG,CAAC;YAElB,OAAO,KAAK,CAAC;QACf,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAC9B,IAAI,EACJ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACnD,CAAC;YACF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC;QACD,OAAO,SAAS,GAAG,0DAAe,CAAC,YAAY,CAAC,qBAAqB,CAAC;IACxE,CAAC;IACD,8CAAS,GAAT,UAAU,GAAS,EAAE,QAAkB,EAAE,IAAwB;QAC/D,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,QAAQ,CAAC,oBAAoB,GAAG,UAAC,IAAY;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAyB,QAAS,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,CAAC,CAAC;IACJ,CAAC;IACD,yDAAoB,GAApB,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB;QAElB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;YACvB,IAAI,CAAC,qDAAS,CAAC,cAAc,CAAsB,QAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACrF,QAAQ,CAAC,UAAU,EAAE,CAAC;aACvB;SACF;IACH,CAAC;IACO,mDAAc,GAAtB,UACE,QAAkB,EAClB,IAAwB,EACxB,WAAuB;QAEvB,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC;YACxE,OAAO;QACT,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC5C,QAAS,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1F,CAAC;IACO,iDAAY,GAApB,UAAqB,IAAwB;QAC3C,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;IAChC,CAAC;IACO,qDAAgB,GAAxB,UAAyB,IAAwB,EAAE,KAAa;QAC9D,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC3B,IAAI,IAAI,GAAG,sEAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;YAC5B,IAAI,IAAI,GAAG,sEAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;YACvD,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;SACvB;QACD,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,sEAAkB,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IACO,2DAAsB,GAA9B,UACE,IAAwB,EACxB,WAAuB;QAEvB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,mDAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACzC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACxB;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IACO,gDAAW,GAAnB,UAAoB,IAAwB,EAAE,IAAS;QACrD,IAAI,QAAQ,GAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5E,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;YACpC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;SACtB;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACO,+CAAU,GAAlB,UAAmB,GAAS,EAAE,QAAkB,EAAE,IAAwB;QAA1E,iBAMC;QALC,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAC,OAAY;YAClD,KAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAEnD,CAAC;IACO,0DAAqB,GAA7B,UACE,IAAwB,EACxB,OAAmB;QAEnB,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACzD,IAAI,mDAAO,CAAC,YAAY,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACtE;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACH,iCAAC;AAAD,CAAC,CAjJ+C,kBAAkB,GAiJjE;;AAED;IAA2C,uFAA0B;IAArE;;IAeA,CAAC;IAdQ,mCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,gBAAgB,CAAC;IAC7D,CAAC;IACM,uCAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,IAAI,IAAI,GAAG,iBAAM,OAAO,YAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,SAAS,GAAG,CAAC,CAAC,sDAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,CAAC,SAAS,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IACH,4BAAC;AAAD,CAAC,CAf0C,0BAA0B,GAepE;;AACD;IAA4C,wFAA0B;IAAtE;;IAiBA,CAAC;IAhBQ,oCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;IAChD,CAAC;IACD,sBAAc,0DAAsB;aAApC;YACE,OAAO,KAAK,CAAC;QACf,CAAC;;;OAAA;IACD,0CAAS,GAAT,UAAU,GAAS,EAAE,QAAkB,EAAE,IAAwB;QAC/D,iBAAM,SAAS,YAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,QAAQ,CAAC,qBAAqB,GAAG,UAAC,GAAQ;YACxC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,CAAC,CAAC;QACF,QAAQ,CAAC,mBAAmB,GAAG,UAAC,GAAQ;YACtC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;gBAAE,OAAO,SAAS,CAAC;YACvD,OAAqB,GAAG,CAAC,SAAS,EAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC;IACH,6BAAC;AAAD,CAAC,CAjB2C,0BAA0B,GAiBrE;;AACD;IAAgD,4FAAkB;IAAlE;;IAsCA,CAAC;IArCQ,wCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;IACjC,CAAC;IACM,4CAAO,GAAd,UAAe,GAAS,EAAE,IAAwB,EAAE,OAA8B;QAChF,IAAM,MAAM,GAAG;YACb,IAAI,EAAE,UAAU;YAChB,cAAc,EAAE,sEAAkB,CAAC,SAAS,CAAC,4BAA4B,CAAC;YAC1E,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;SAC7C,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE;YAC3B,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;SAC9B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACO,+CAAU,GAAlB,UAAmB,GAAS,EAAE,IAAwB,EAAE,OAA8B;QAAtF,iBAcC;QAbC,IAAI,MAAM,GAAG,+DAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS;YAAE,SAAS,GAAG,EAAE,CAAC;QAC/B,IAAI,UAAU,GAAG,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC;QAC9D,IAAI,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC;YAC3B,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAO,CAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChE,IAAI,CAAC,CAAC,OAAO;gBAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAChH,IAAI,KAAK,GAAG,KAAI,CAAC,YAAY,CAAM,CAAC,CAAC,CAAC;YACtC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,2DAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,iDAAY,GAAtB,UAAuB,MAAmB,EAAE,GAAS;QACnD,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC;IAES,iDAAY,GAAtB,UAAuB,QAAkB;QACvC,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IACH,iCAAC;AAAD,CAAC,CAtC+C,kBAAkB,GAsCjE;;AAED;IAA0D,sGAA0B;IAApF;;IAgBA,CAAC;IAfQ,kDAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,qBAAqB,CAAC;IAC5C,CAAC;IAES,2DAAY,GAAtB,UAAuB,MAAmB,EAAE,GAAS;QACnD,IAAI,SAAS,GAAG,iBAAM,YAAY,YAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,SAAS;YACnC,IAAI,sDAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE;gBACnE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACH,2CAAC;AAAD,CAAC,CAhByD,0BAA0B,GAgBnF;;AAED;IAAqD,iGAA0B;IAA/E;;IAWA,CAAC;IAVQ,6CAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC;IACtC,CAAC;IACS,sDAAY,GAAtB,UAAuB,QAAkB;QACvC,OAAO,QAAQ,CAAC,YAAY,EAAE,CAAC;IACjC,CAAC;IACS,sDAAY,GAAtB,UAAuB,MAAmB,EAAE,GAAS;QACnD,IAAM,SAAS,GAAG,iBAAM,YAAY,YAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO,SAAS,CAAC,MAAM,CAAC,WAAC,IAAM,OAAO,CAAC,sDAAU,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC;IACH,sCAAC;AAAD,CAAC,CAXoD,0BAA0B,GAW9E;;AAED,4BAA4B,CAAC,QAAQ,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;AACvE,4BAA4B,CAAC,QAAQ,CAAC,IAAI,wBAAwB,EAAE,CAAC,CAAC;AACtE,4BAA4B,CAAC,QAAQ,CAAC,IAAI,wBAAwB,EAAE,CAAC,CAAC;AACtE,4BAA4B,CAAC,QAAQ,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC;AACrE,4BAA4B,CAAC,QAAQ,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;AACpE,4BAA4B,CAAC,QAAQ,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;AACpE,4BAA4B,CAAC,QAAQ,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;AACxE,4BAA4B,CAAC,QAAQ,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;AACnE,4BAA4B,CAAC,QAAQ,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;AACpE,4BAA4B,CAAC,QAAQ,CAAC,IAAI,6BAA6B,EAAE,CAAC,CAAC;AAC3E,4BAA4B,CAAC,QAAQ,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;AACxE,4BAA4B,CAAC,QAAQ,CAAC,IAAI,+BAA+B,EAAE,CAAC,CAAC;AAC7E,4BAA4B,CAAC,QAAQ,CAAC,IAAI,oCAAoC,EAAE,CAAC,CAAC;AAClF,4BAA4B,CAAC,QAAQ,CAAC,IAAI,2BAA2B,EAAE,CAAC,CAAC;AAEzE,2DAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAC,IAAI;IAC5D,OAAO,IAAI,oEAAwB,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxlDkV;AAC1R;AACc;AAEV;AACK;AAMnD;AAC2C;AAE5D;IAAuD,0FAAkB;IAAzE;;IAuZA,CAAC;IAtZQ,yCAAgB,GAAvB,UACE,IAAgB,EAChB,WAAmB,EACnB,QAAgB;QAEhB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;aAChC;SACF;QACD,OAAO,iEAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACM,4CAAS,GAAhB,UAAiB,GAAS,EAAE,QAAkB,EAAE,IAAwB;QAAxE,iBAOC;QANO,QAAS,CAAC,2BAA2B,GAAG,UAC5C,MAAkC;YAElC,OAAO,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAA8B,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC;IACO,wDAAqB,GAA7B,UAA8B,MAAW,EAAE,YAAsB,EAAE,YAAoB;QACrF,IAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACzE,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE;YAClD,IAAI,YAAY,KAAK,MAAM,IAAI,OAAO,KAAK,WAAW,EAAE;gBAChD,YAAa,CAAC,WAAW,GAAG,IAAI,2DAAe,CAAS,cAAM,aAAM,CAAC,IAAI,EAAX,CAAW,CAAC,CAAC;aAClF;YACD,IAAI,YAAY,KAAK,OAAO,IAAI,OAAO,KAAK,sBAAsB,EAAE;gBAC5D,YAAa,CAAC,WAAW,GAAG,IAAI,2DAAe,CAAS,cAAM,aAAM,CAAC,KAAK,EAAZ,CAAY,CAAC,CAAC;aACnF;SACF;IACH,CAAC;IACM,sDAAmB,GAA1B,UAA2B,GAAS,EAAE,OAAY;QAChD,IAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;QAC/B,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC;QACf,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC,CAAC,QAAQ,GAAG,sDAAU,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7E,CAAC;IACO,4DAAyB,GAAjC,UAAkC,OAAuB;QACvD,OAAO,CAAC,OAAO,CAAC,gBAAM;YACpB,MAAM,CAAC,QAAQ,GAAG,CAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,+BAA2B,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC;IACM,uDAAoB,GAA3B,UACE,GAAS,EACT,OAAY,EACZ,UAA+B;QAHjC,iBA4CC;QAvCC,IAAM,QAAQ,GAA+B,OAAO,CAAC,QAAQ,CAAC;QAC9D,IAAM,GAAG,GAA0B,OAAO,CAAC,GAAG,CAAC;QAC/C,IAAM,OAAO,GAAc,OAAO,CAAC,OAAO,CAAC;QAC3C,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,sBAAsB;gBAC1B,QAAQ,EAAE,WAAW;gBACrB,KAAK,EAAE,sEAAkB,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC9C,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE;oBACN,IAAI,MAAM,GAAyB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;oBAC1D,UAAU,CAAC,MAAM,CAAC,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;QACD,IAAM,gBAAgB,GAAY,OAAO,CAAC,MAAM,CAC9C,UAAC,IAAa,IAAK,WAAI,CAAC,EAAE,KAAK,aAAa,EAAzB,CAAyB,CAC7C,CAAC,CAAC,CAAC,CAAC;QACL,+EAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC,gBAAgB,EAAE;YACtB,gBAAgB,CAAC,SAAS,GAAG,oBAAoB,CAAC;YAClD,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;YAClE,gBAAgB,CAAC,SAAS,GAAG,KAAK,CAAC;YACnC,gBAAgB,CAAC,QAAQ,GAAG,KAAK,CAAC;YAClC,gBAAgB,CAAC,YAAY,GAAG,GAAG,CAAC,oBAAoB,CAAC;YACzD,gBAAgB,CAAC,MAAM,GAAG;gBACxB,GAAG,CAAC,wBAAwB,EAAE,CAAC;gBAC/B,gBAAgB,CAAC,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7F,CAAC,CAAC;YACF,gBAAgB,CAAC,YAAY,GAAG,CAAC,CAAC;YAClC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACtD,GAAG,CAAC,2BAA2B,GAAG;gBAChC,gBAAgB,CAAC,QAAQ,GAAG,KAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;gBAClE,gBAAgB,CAAC,YAAY,GAAG,GAAG,CAAC,oBAAoB,CAAC;YAC3D,CAAC,CAAC;SACH;QACD,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACO,8DAA2B,GAAnC,UAAoC,GAA0B;QAC5D,OAAO,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC;IACxE,CAAC;IACM,4DAAyB,GAAhC,UAAiC,GAAS,EAAE,OAAY;QACtD,IAAM,QAAQ,GAA+B,OAAO,CAAC,QAAQ,CAAC;QAC9D,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;YACxB,EAAE,EAAE,UAAU;YACd,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,QAAQ,CAAC,UAAU;YAC1B,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE;gBACN,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,CAAC;YACD,OAAO,EAAO,IAAI,2DAAe,CAAU,cAAM,OAAkC,QAAS,CAAC,SAAS,EAArD,CAAqD,CAAC;SACxG,CAAC,CAAC;IACL,CAAC;IACS,gDAAa,GAAvB,UACE,MAAkC,EAClC,IAAwB;QAExB,IAAI,IAAI,GAAQ,EAAE,CAAC;QACnB,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE;YACd,SAAS,GAAG,MAAM,CAAC;SACpB;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,EAAE;YAChC,IAAI,OAAO,GAAG,wBAAwB,CAAC,gBAAgB,CACrD,MAAM,CAAC,KAAK,EACZ,WAAW,EACX,SAAS,CACV,CAAC;YACF,QAAQ,GAAG,OAAO,CAAC;SACpB;QACD,IAAI,IAAI,GAAG,sDAAU,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,CAAC,QAAQ,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;SAC9B;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;SAC9C;QACD,IAAM,GAAG,GAAS,MAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,sDAAU,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE;YAC1D,IAAI,CAAC,IAAI,GAAG,oEAAe,CAAC,GAAG,CAAC,CAAC;SAClC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE;YACvB,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;SACpB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACS,sDAAmB,GAA7B,UAA8B,IAAwB;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACS,+CAAY,GAAtB,UAAuB,IAAwB;QAC7C,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IACS,8CAAW,GAArB;QACE,OAAO,EAAE,CAAC;IACZ,CAAC;IACS,iDAAc,GAAxB,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IACS,qDAAkB,GAA5B,UAA6B,GAAS,EAAE,IAAwB;QAC9D,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACS,qDAAkB,GAA5B,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC9B;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YACnB,GAAG,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;SACnC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACS,2DAAwB,GAAlC,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,IAAI,MAAM,GAAG,sDAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,EAAE,CAAC;SACX;QACD,IAAI,KAAK,GAAG,IAAI,oFAAwB,CACtC,MAAM,EACD,OAAO,EACZ,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,EAClC,MAAM,EACN,GAAG,EACE,IAAI,CACV,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,OAAO,EAAE,CAAC;SACX;QACD,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACvC,CAAC;IACS,2DAAwB,GAAlC,UAAmC,IAAwB;QACzD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE;YAC9B,IAAI,UAAU,GAAG,sDAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC9C,SAAS;iBACV;gBACD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC9B;SACF;QACD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5D,CAAC;IACS,uDAAoB,GAA9B;QACE,OAAO,EAAE,CAAC;IACZ,CAAC;IACO,wDAAqB,GAA7B,UAA8B,IAAwB;QACpD,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC;IAClD,CAAC;IACS,iDAAc,GAAxB;QACE,OAAO,EAAE,CAAC;IACZ,CAAC;IACS,iDAAc,GAAxB;QACE,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACzC,CAAC;IAES,sDAAmB,GAA7B,UACE,GAAS,EACT,MAAkC,EAClC,IAAwB;QAH1B,iBAwCC;QAnCC,IAAI,CAAC,qBAAqB;YACxB,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,wBAAwB,GAAG,UAChC,GAA+B;YAE/B,OAAa,GAAI,CAAC,YAAY,KAAK,KAAK,IAAI,KAAI,CAAC,qBAAqB,CAAC;QACzE,CAAC,CAAC;QACF,MAAM,CAAC,sCAAsC,GAAG,UAC9C,WAA8C;YAE9C,WAAW,CAAC,KAAK,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC;QACF,IAAM,CAAC,GAAQ,MAAM,CAAC;QACtB,MAAM,CAAC,2BAA2B,GAAG,UACnC,GAA+B,EAC/B,KAAiB;YAEjB,IAAI,4DAAqB,CACvB,GAAG,CAAC,UAAU,EACd,CAAC,CAAC,OAAO,EACT,CAAC,CAAC,GAAG,EACL,CAAC,CAAC,QAAQ,CACX,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACnF,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SACtD;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC7B,IAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/D,IAAI,CAAC,CAAC,MAAM,EAAE;gBACZ,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;SACF;IACH,CAAC;IACS,sDAAmB,GAA7B,UAA8B,IAAwB,IAAa,OAAO,KAAK,CAAC,CAAC,CAAC;IAC1E,4DAAyB,GAAjC,UACE,MAAkC,EAClC,IAAwB;QAExB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,MAAM,GAAG,sDAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,KAAK,GAAG,IAAI,sDAAU,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,4DAAqB,CACvB,MAAM,EACA,MAAO,CAAC,OAAO,EACf,MAAO,CAAC,GAAG,EACjB,IAAI,CACL,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,CAAC;IACM,0CAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO,IAAI,CAAC,aAAa,CACvB,GAAG,EACH,IAAI,EACJ,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EACvC,OAAO,CACR,CAAC;IACJ,CAAC;IACS,gDAAa,GAAvB,UACE,GAAS,EACT,IAAwB,EACxB,SAAwB,EACxB,OAA8B;QAE9B,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,SAAS,EAAE;YACd,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;SAChC;QACD,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACjE,IAAI,GAAG,GAAQ;YACb,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,UAAU;YAC3B,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;YAC9B,kBAAkB,EAAE,IAAI;YACxB,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACpC,mBAAmB,EAAE,sEAAkB,CAAC,SAAS,CAC/C,uBAAuB,CACxB;YACD,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;SAC3C,CAAC;QACF,IAAI,IAAI,CAAC,0BAA0B,EAAE,EAAE;YACrC,GAAG,CAAC,uBAAuB,GAAG,IAAI,CAAC;SACpC;QACD,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;SAC/B;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACS,mDAAgB,GAA1B,UAA2B,IAAwB;QACjD,IAAI,OAAO,GAAG,gBAAgB,CAAC;QAC/B,IAAM,WAAW,GAAG,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9C,IAAI,CAAC,CAAC,sEAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;YAC/C,OAAO,GAAG,WAAW,CAAC;SACvB;QACD,OAAO,sEAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IACS,qDAAkB,GAA5B,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACS,iDAAc,GAAxB,UACE,GAAS,EACT,IAAwB,EACxB,SAAwB,EACxB,OAA8B;QAE9B,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,SAAS,EAAE;YACd,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;SAChC;QACD,IAAI,GAAG,GAAG,IAAI,4DAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,iBAAiB,CACjE,SAAS,EACT,SAAS,CACV,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,EAAE;gBAChC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC;aAC1B;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACS,0DAAuB,GAAjC;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IACS,6DAA0B,GAApC;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IACO,gDAAa,GAArB,UAAsB,IAAwB;QAC5C,IAAI,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAChD,IAAI,sEAAkB,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;YAClD,OAAO,sEAAkB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;SACvD;QACD,OAAO,sEAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IACO,oDAAiB,GAAzB,UACE,GAAS,EACT,MAAkC,EAClC,OAA8B,EAC9B,IAAwB;QAExB,IAAI,UAAU,GAAG;YACf,mBAAmB,EAAE,IAAI;YACzB,mBAAmB,EAAE,IAAI;YACzB,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,yBAAyB;SAC1B,CAAC;QACF,OAAO,CAAC,kCAAkC,CAAC,IAAI,CAAC,IAAI,EAAO,GAAG,EAAE,UAAU,CAAC,CAAC;QAC5E,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE;YACnC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;YAC5B,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;SAChC;QACK,MAAO,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC;QAC7D,MAAO,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC/C,MAAO,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;IAC3D,CAAC;IACH,+BAAC;AAAD,CAAC,CAvZsD,yDAAkB,GAuZxE;;AAED;IAAwD,oGAAwB;IAAhF;;IAmGA,CAAC;IAlGQ,gDAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,CACL,IAAI,CAAC,OAAO,IAAI,sDAAU,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CACvE,CAAC;IACJ,CAAC;IACM,yEAA4B,GAAnC,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,IAAU,QAAS,CAAC,YAAY,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QACzD,IAAI,MAAM,GAA+B,QAAQ,CAAC;QAClD,IAAI,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3B,OAAO,CACL,CAAC,CAAC,MAAM;YACR,MAAM,CAAC,SAAS;YAChB,CAAC,MAAM,CAAC,QAAQ;YAChB,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAChC,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CACpC,CAAC;IACJ,CAAC;IACS,gEAAmB,GAA7B,UAA8B,IAAwB,IAAa,OAAO,IAAI,CAAC,CAAC,CAAC;IAC1E,sEAAyB,GAAhC,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,IAAI,KAAK,GAAG,EAAE,CAAC;QACT,QAAS,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,GAAG;YAClC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,2DAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;IACM,kEAAqB,GAA5B,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,OAAa,QAAS,CAAC,mBAAmB,KAAK,KAAK,CAAC;IACvD,CAAC;IACM,+DAAkB,GAAzB,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,OAAO;SACR;QACD,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACS,+DAAkB,GAA5B,UAA6B,GAAS,EAAE,IAAwB;QAC9D,OAAO,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;IACzC,CAAC;IACS,iEAAoB,GAA9B;QACE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IACS,wDAAW,GAArB;QACE,OAAO,OAAO,CAAC;IACjB,CAAC;IACS,+DAAkB,GAA5B,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,mBAAmB,CAAC;QAChE,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC,gBAAgB,CAAC;QAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,mBAAmB,CAAC;QAChE,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,OAAO,CAAC,iBAAiB,CAAC;QACjE,OAAO,iBAAM,kBAAkB,YAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IACO,gEAAmB,GAA3B,UAA4B,KAAuB;QACjD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnC,OAAO,KAAK,CAAC;SACd;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE;gBACxC,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACO,mEAAsB,GAA9B,UAA+B,KAAuB;QACpD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnC,OAAO,KAAK,CAAC;SACd;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC7C,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACH,yCAAC;AAAD,CAAC,CAnGuD,wBAAwB,GAmG/E;;AAED;IAAqD,iGAAwB;IAA7E;;IAwBA,CAAC;IAvBQ,6CAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,uBAAuB,CAAC;IAC9C,CAAC;IACS,iEAAuB,GAAjC;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACS,8DAAoB,GAA9B;QACE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;IACS,qDAAW,GAArB;QACE,OAAO,MAAM,CAAC;IAChB,CAAC;IACS,sDAAY,GAAtB,UAAuB,IAAwB;QAC7C,OAAO,QAAQ,CAAC;IAClB,CAAC;IACS,4DAAkB,GAA5B,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO,OAAO,CAAC,mBAAmB,CAAC;IACrC,CAAC;IACS,6DAAmB,GAA7B,UAA8B,IAAwB,IAAa,OAAO,IAAI,CAAC,CAAC,CAAC;IACnF,sCAAC;AAAD,CAAC,CAxBoD,wBAAwB,GAwB5E;;AAED;IAAmD,+FAAwB;IAA3E;;IA2BA,CAAC;IA1BQ,2CAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC;IACpC,CAAC;IACM,8DAAsB,GAA7B,UAA8B,GAAS,EAAE,GAA0B;QACjE,IAAI,IAAI,GAAQ,GAAG,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACzB,OAAO;SACR;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC;IAC1C,CAAC;IACS,0DAAkB,GAA5B,UAA6B,GAAS,EAAE,IAAwB;QAC9D,OAAO,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IACS,4DAAoB,GAA9B;QACE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;IACS,sDAAc,GAAxB;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IACS,mDAAW,GAArB;QACE,OAAO,MAAM,CAAC;IAChB,CAAC;IACS,oDAAY,GAAtB,UAAuB,IAAwB;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IACS,2DAAmB,GAA7B,UAA8B,IAAwB,IAAa,OAAO,IAAI,CAAC,CAAC,CAAC;IACnF,oCAAC;AAAD,CAAC,CA3BkD,wBAAwB,GA2B1E;;AAED;IAA8D,0GAAwB;IAAtF;;IAuBA,CAAC;IAtBQ,sDAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,kBAAkB,CAAC;IACzC,CAAC;IACS,qEAAkB,GAA5B,UAA6B,GAAS,EAAE,IAAwB;QAC9D,OAAO,uBAAuB,CAAC;IACjC,CAAC;IACS,uEAAoB,GAA9B;QACE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IACS,8DAAW,GAArB;QACE,OAAO,MAAM,CAAC;IAChB,CAAC;IACS,+DAAY,GAAtB,UAAuB,IAAwB;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IACS,6EAA0B,GAApC;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACS,sEAAmB,GAA7B,UAA8B,GAAS,EAAE,MAAkC,EAAE,IAAwB;QACnG,iBAAM,mBAAmB,YAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IACvC,CAAC;IACH,+CAAC;AAAD,CAAC,CAvB6D,wBAAwB,GAuBrF;;AACD;IAA4D,wGAAwB;IAApF;;IAUA,CAAC;IATQ,oDAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,gBAAgB,CAAC;IACvC,CAAC;IACS,qEAAoB,GAA9B;QACE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IACS,2EAA0B,GAApC;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACH,6CAAC;AAAD,CAAC,CAV2D,wBAAwB,GAUnF;;AACD;IAA2D,uGAAwB;IAAnF;;IAUA,CAAC;IATQ,mDAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC;IACtC,CAAC;IACS,oEAAoB,GAA9B;QACE,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IACS,0EAA0B,GAApC;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACH,4CAAC;AAAD,CAAC,CAV0D,wBAAwB,GAUlF;;AACD;IAA+D,2GAAwB;IAAvF;;IA8CA,CAAC;IA7CQ,uDAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IACnC,CAAC;IACD;;;OAGG;IACO,sEAAkB,GAA5B,UAA6B,GAAS,EAAE,IAAwB;QAC9D,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACS,wEAAoB,GAA9B;QACE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IACS,+DAAW,GAArB;QACE,OAAO,MAAM,CAAC;IAChB,CAAC;IACS,gEAAY,GAAtB,UAAuB,IAAwB;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IACS,uEAAmB,GAA7B;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACM,6EAAyB,GAAhC,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,IAAI,KAAK,GAAG,EAAE,CAAC;QACT,QAAS,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,GAAG;YAClC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,+DAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACjF,CAAC;IACM,uEAAmB,GAA1B,UAA2B,GAAS,EAAE,OAAY;QAChD,iBAAM,mBAAmB,YAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxC,IAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;YAAE,OAAO;QACpC,IAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC5B,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC7D,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACH,gDAAC;AAAD,CAAC,CA9C8D,wBAAwB,GA8CtF;;AAED;IAAoE,uGAAwB;IAA5F;;IAkDA,CAAC;IAhDW,8DAAc,GAAxB,UACE,GAAS,EACT,IAAwB,EACxB,SAAwB,EACxB,OAA8B;QAE9B,IAAI,GAAG,GAAG,iBAAM,cAAc,YAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YAC3B,GAAG,CAAC,OAAO,CAAC;gBACV,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;gBAC3B,QAAQ,EAAE,UAAU;aACrB,CAAC,CAAC;SACJ;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACM,mEAAmB,GAA1B,UAA2B,GAAS,EAAE,OAAY;QAChD,iBAAM,mBAAmB,YAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxC,IAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;QAC/B,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,cAAc,EAAE,EAAE;YAChD,CAAC,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAC7B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;SAC5C;IACH,CAAC;IACM,wEAAwB,GAA/B,UAAgC,GAAS,EAAE,OAAY;QACrD,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YAC/C,OAAO;SACR;QACD,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO;SACR;QACD,IAAI,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC5D,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC9C,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,IAAI,OAAO,GAAG,sDAAU,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;QAC5B,IAAI,oBAAoB,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;SAC/B;IACH,CAAC;IACS,0EAA0B,GAApC;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACH,4CAAC;AAAD,CAAC,CAlDmE,wBAAwB,GAkD3F;;AAED;IAAwD,oGAAqC;IAA7F;;IA6BA,CAAC;IA5BQ,gDAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IACnC,CAAC;IACS,2DAAc,GAAxB;QACE,OAAO,eAAe,CAAC;IACzB,CAAC;IACS,gEAAmB,GAA7B,UAA8B,IAAwB;QACpD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACS,uDAAU,GAApB,UAAqB,GAAS;QAC5B,IAAI,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,sEAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC;aAChD,CAAC,CAAC;SACJ;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACO,mEAAsB,GAA9B,UAA+B,GAAQ;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,IAAI,GAAG,CAAC,sBAAsB;YAAE,OAAO,GAAG,CAAC,sBAAsB,EAAE,CAAC;QACpE,IAAI,GAAG,CAAC,cAAc;YACpB,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC;IACH,yCAAC;AAAD,CAAC,CA7BuD,qCAAqC,GA6B5F;;AAED;IAAsD,kGAAqC;IAA3F;;IAwBA,CAAC;IAvBS,+DAAoB,GAA5B;QACE,OAAO,sDAAU,CAAC,kBAAkB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAQ,IAAI,eAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAlC,CAAkC,CAAC,CAAC;IACrH,CAAC;IACM,8CAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;IACjC,CAAC;IACS,yDAAc,GAAxB;QACE,OAAO,aAAa,CAAC;IACvB,CAAC;IACS,8DAAmB,GAA7B,UAA8B,IAAwB;QACpD,IAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,YAAE,IAAI,SAAE,CAAC,IAAI,EAAP,CAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAEtC,IAAI,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,EAAE;YAClD,OAAO,sBAAsB,CAAC;SAC/B;aAAM;YACL,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;SACnB;IACH,CAAC;IACS,8DAAmB,GAA7B,UAA8B,IAAwB,IAAa,OAAO,IAAI,CAAC,CAAC,CAAC;IACvE,qDAAU,GAApB,UAAqB,GAAS;QAC5B,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,UAAC,EAAE,IAAO,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,sEAAkB,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnI,CAAC;IACH,uCAAC;AAAD,CAAC,CAxBqD,qCAAqC,GAwB1F;;AAED,mEAA4B,CAAC,QAAQ,CAAC,IAAI,kCAAkC,EAAE,CAAC,CAAC;AAChF,mEAA4B,CAAC,QAAQ,CAAC,IAAI,+BAA+B,EAAE,CAAC,CAAC;AAC7E,mEAA4B,CAAC,QAAQ,CAAC,IAAI,6BAA6B,EAAE,CAAC,CAAC;AAC3E,mEAA4B,CAAC,QAAQ,CACnC,IAAI,wCAAwC,EAAE,CAC/C,CAAC;AACF,mEAA4B,CAAC,QAAQ,CACnC,IAAI,sCAAsC,EAAE,CAC7C,CAAC;AACF,mEAA4B,CAAC,QAAQ,CACnC,IAAI,qCAAqC,EAAE,CAC5C,CAAC;AACF,mEAA4B,CAAC,QAAQ,CACnC,IAAI,yCAAyC,EAAE,CAChD,CAAC;AACF,mEAA4B,CAAC,QAAQ,CAAC,IAAI,kCAAkC,EAAE,CAAC,CAAC;AAChF,mEAA4B,CAAC,QAAQ,CAAC,IAAI,gCAAgC,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;AC7xBQ;AACtC;AAEhD;IAAwC,oFAAM;IAG5C,4BACE,EAAU,EACH,IAAU,EACjB,KAAa,EACN,KAAa;QAJtB,YAME,kBAAM,EAAE,EAAE,EAAE,mBAAmB,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,SACjE;QALQ,UAAI,GAAJ,IAAI,CAAM;QAEV,WAAK,GAAL,KAAK,CAAQ;;IAGtB,CAAC;IACM,oCAAO,GAAd,UAAe,iBAAyB;QACtC,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;SACjD;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IACH,yBAAC;AAAD,CAAC,CAlBuC,kDAAM,GAkB7C;;AAED;IAKE,wBACU,OAAoB,EAC5B,MAAmB,EACX,oBAKe;QALf,uEAKe;QAPf,YAAO,GAAP,OAAO,CAAa;QAEpB,yBAAoB,GAApB,oBAAoB,CAKL;QAEvB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IACD,sBAAW,kCAAM;aAAjB;YACE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;;;OAAA;IACD,sBAAW,iCAAK;aAAhB;YACE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;;;OAAA;IACM,qCAAY,GAAnB,UAAoB,GAAS;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACM,qCAAY,GAAnB,UAAoB,YAAoB;QACtC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IACO,gCAAO,GAAf;QACE,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,WAAW,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE;gBAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpB,WAAW,GAAG,QAAQ,CAAC;aACxB;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;SAC/D;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IACO,8CAAqB,GAA7B;QACE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;SACpC;IACH,CAAC;IACO,mDAA0B,GAAlC,UAAmC,KAAa;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;gBAAE,SAAS;YACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACnF;IACH,CAAC;IACO,2CAAkB,GAA1B,UAA2B,KAAa;QACtC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;YAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;SACxC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACO,oCAAW,GAAnB,UAAoB,OAAY;QAC9B,OAAO,2DAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACO,sCAAa,GAArB,UACE,IAAgB,EAChB,QAAoB,EACpB,UAA8B;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;SACtD;IACH,CAAC;IAEO,mCAAU,GAAlB,UAAmB,GAAS,EAAE,MAA0B;QACtD,IAAI,IAAI,GAAG,IAAI,kBAAkB,CAC/B,cAAc,CAAC,QAAQ,EAAE,EACzB,GAAG,EACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EACjB,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACtC,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;SAChC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,gCAAO,GAAf,UAAgB,GAAS;QACvB,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB;YACpC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,mCAAmC,EAAE,eAAe,EAAE,SAAS,CAAC;YACjG,CAAC,CAAC,2DAAY,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAlBc,uBAAQ,GAAG,CAAC,CAAC;IAmB9B,qBAAC;CAAA;AA1G0B;AA2G3B;IAAyC,qFAAI;IAM3C,6BAAoB,OAAoB,EAAU,oBAA0G;QAA1G,uEAA0G;QAA5J,YACE,iBAAO,SACR;QAFmB,aAAO,GAAP,OAAO,CAAa;QAAU,0BAAoB,GAApB,oBAAoB,CAAsF;;IAE5J,CAAC;IACD,sBAAW,qCAAI;aAAf;YACE,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;;;OAAA;IACM,kCAAI,GAAX,UACE,MAAmB,EACnB,WAAiB,EACjB,OAA4B;QAH9B,iBAkBC;QAbC,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpF,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,cAAc,GAAG,IAAI,qDAAS,CACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,EACnB,UAAC,IAAa,IAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC1C,IAAI,EAAE,YAAY,EAClB,UAAC,IAAY,IAAO,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5D;aAAM;YACL,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC;SACjD;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IACM,qCAAO,GAAd;QACE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC;IA7BW;QAAX,4DAAQ,EAAE;0DAAoB;IA8BjC,0BAAC;CAAA,CAlCwC,gDAAI,GAkC5C;AAlC+B;;;;;;;;;;;;;;;;;;;;;;;ACnI8C;AAG9B;AACQ;AAET;AACM;AAErD;IAA2C,uFAAI;IAW7C,+BAAoB,iBAAoC,EAAU,OAAoB;QAAtF,YACE,iBAAO,SAkBR;QAnBmB,uBAAiB,GAAjB,iBAAiB,CAAmB;QAAU,aAAO,GAAP,OAAO,CAAa;QAEpF,KAAI,CAAC,mBAAmB,GAAG,KAAI,CAAC,QAAQ,EAAE,CAAC;QAC3C,KAAI,CAAC,iBAAiB,CAAC,uBAAuB,GAAG;YAC/C,KAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC;QACF,KAAI,CAAC,iBAAiB,CAAC,yBAAyB,GAAG,UAAC,GAAS,EAAE,YAAoB;YACjF,IAAI,CAAC,CAAC,KAAI,CAAC,mBAAmB,EAAE;gBAC9B,KAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;aAC9D;QACH,CAAC,CAAC;QACF,KAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,KAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,OAAO;YACjD,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE;gBACtC,KAAI,CAAC,kBAAkB,CAAC,kBAAkB,GAAG,KAAI,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;aACzG;QACH,CAAC,CAAC,CAAC;QACH,KAAI,CAAC,eAAe,EAAE,CAAC;;IACzB,CAAC;IAES,sDAAsB,GAAhC,UAAiC,IAAY,EAAE,QAAa,EAAE,QAAa;QACzE,iBAAM,sBAAsB,YAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEvD,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,KAAK,SAAS,EAAE;YACpD,IAAI,CAAC,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;SACjD;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,KAAK,SAAS,EAAE;YACpD,IAAI,CAAC,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;SACjD;IACH,CAAC;IAED,sBAAY,sDAAmB;aAA/B;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC;QACjD,CAAC;;;OAAA;IAEO,+CAAe,GAAvB;QAAA,iBAcC;QAbC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,UAAC,MAAmB,EAAE,OAAY;gBAC/D,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,EAAE;oBACrD,KAAI,CAAC,WAAW,EAAE,CAAC;iBACpB;YACH,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;SACjD;IACH,CAAC;IACO,2CAAW,GAAnB;QACE,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,qBAAqB,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAC9D,CAAC;IACO,wCAAQ,GAAhB;QACE,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,IAAI,WAAW,GAAG,2DAAY,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,EAAE,uCAAuC,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC;IAC/I,CAAC;IACO,8CAAc,GAAtB;QACE,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;IACpC,CAAC;IACO,2CAAW,GAAnB;QAAA,iBA4DC;QA3DC,IAAI,0DAAQ,CAAC,YAAY,CAAC,qBAAqB,EAAE;YAC/C,IAAI,CAAC,mBAAmB,GAAG,IAAI,kDAAM,CAAC;gBACpC,EAAE,EAAE,uBAAuB;gBAC3B,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS,EAAE,oBAAoB;gBAC/B,KAAK,EAAE,wEAAY,CAAC,iBAAiB,CAAC;gBACtC,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE;oBACN,KAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;gBAClC,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,mBAAmB,GAAG,IAAI,kDAAM,CAAC;gBACpC,EAAE,EAAE,uBAAuB;gBAC3B,QAAQ,EAAE,kBAAkB;gBAC5B,SAAS,EAAE,oBAAoB;gBAC/B,KAAK,EAAE,wEAAY,CAAC,iBAAiB,CAAC;gBACtC,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE;oBACN,KAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;gBAClC,CAAC;aACF,CAAC,CAAC;SACJ;QAED,IAAM,aAAa,GAAG,IAAI,oEAAmB,CAC3C,IAAI,CAAC,OAAO,EACZ,UAAC,GAAS,EAAE,IAAY,EAAE,MAAc,EAAE,WAAmB;YAC3D,OAAO,KAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC7F,CAAC,CACF,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,sDAAU,CACtC,qBAAqB,EACrB,EAAE,KAAK,EAAE,aAAa,EAAE,EACxB,QAAQ,EACR,QAAQ,CACT,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,QAAQ,IAAI,sBAAsB,CAAC;QAE3D,IAAI,CAAC,qBAAqB,GAAG,IAAI,kDAAM,CAAC;YACtC,EAAE,EAAE,0BAA0B;YAC9B,KAAK,EAAE,IAAI,CAAC,mBAAmB;YAC/B,GAAG,EAAE,0DAA0D;YAC/D,SAAS,EAAE,6BAA6B;YACxC,MAAM,EAAE;gBACN,KAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,KAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;gBACtF,aAAa,CAAC,IAAI,CAChB,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,EACvC,KAAI,CAAC,iBAAiB,CAAC,GAAG,EAC1B,UAAC,GAAS;oBACR,KAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACvD,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;gBAC7C,CAAC,CACF,CAAC;gBACF,KAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;YAC7C,CAAC;YACD,UAAU,EAAE,IAAI,CAAC,kBAAkB;SACpC,CAAC,CAAC;IACL,CAAC;IAlIW;QAAX,4DAAQ,EAAE;0DAAkB;IACjB;QAAX,4DAAQ,EAAE;0DAAkB;IACjB;QAAX,4DAAQ,EAAE;yDAAqB;IACpB;QAAX,4DAAQ,EAAE;sEAA6B;IAgI1C,4BAAC;CAAA,CAzI0C,gDAAI,GAyI9C;AAzIiC;;;;;;;;;;;;;;;;;;;;ACHb;AAKJ;AAGjB,IAAI,IAAI,GAAG;IACT,IAAI,EAAE,uBAAuB;IAC7B,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,UAAU,KAAK;QAC7B,wDAAwD;IAC1D,CAAC;CACF,CAAC;AAEF,IAAI,CAAC,+DAAmB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACpE,+DAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC;CAC/C;AAED;IAAwD,oGAA0B;IAAlF;;IAiBA,CAAC;IAhBQ,gDAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;IACjC,CAAC;IACM,oDAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO;YACL,IAAI,EAAE,uBAAuB;YAC7B,aAAa,EAAE,QAAQ;SACxB,CAAC;IACJ,CAAC;IACD,sDAAS,GAAT,UAAU,GAAS,EAAE,QAAkB,EAAE,IAAwB,EAAE,OAA8B;QAC/F,IAAI,4DAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9G,CAAC;IACH,yCAAC;AAAD,CAAC,CAjBuD,iEAA0B,GAiBjF;;AAED,mEAA4B,CAAC,QAAQ,CAAC,IAAI,kCAAkC,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;AC5C7B;AAEH;AAGhD;IAAwC,oFAAwB;IAC9D,4BACS,YAAsB,EACnB,YAAoB,EAC9B,OAAqC;QAArC,wCAAqC;QAHvC,YAKE,kBAAM,OAAO,EAAE,KAAK,CAAC,SAGtB;QAPQ,kBAAY,GAAZ,YAAY,CAAU;QACnB,kBAAY,GAAZ,YAAY,CAAQ;QAI9B,KAAI,CAAC,WAAW,EAAE,CAAC;QACnB,KAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAI,CAAC,gBAAgB,EAAE,CAAC;;IAChD,CAAC;IACD,sBAAW,wCAAQ;aAAnB;YACE,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;;;OAAA;IACS,0CAAa,GAAvB;QACE,OAAO;YACL,QAAQ,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;SACnC,CAAC;IACJ,CAAC;IACS,4CAAe,GAAzB;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;SACpB;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,sBAAsB,EAAE;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;SACzB;QACD,2DAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACS,6CAAgB,GAA1B;QACE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC;IACS,yCAAY,GAAtB;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC7B,CAAC;IACS,oDAAuB,GAAjC;QACE,OAAO,eAAe,CAAC;IACzB,CAAC;IACM,kCAAK,GAAZ;QACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IACH,yBAAC;AAAD,CAAC,CA9CuC,+DAAwB,GA8C/D;;AAED;IAA6C,yFAAkB;IAC7D,iCACS,YAAsB,EACnB,YAAoB,EAC9B,OAAqC;QAArC,wCAAqC;QAHvC,YAKE,kBAAM,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,SAC3C;QALQ,kBAAY,GAAZ,YAAY,CAAU;QACnB,kBAAY,GAAZ,YAAY,CAAQ;;IAIhC,CAAC;IACS,kDAAgB,GAA1B;QACE,IAAI,GAAG,GAAG,iBAAM,gBAAgB,WAAE,CAAC;QACnC,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;SACb;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACS,8CAAY,GAAtB;QACE,IAAI,GAAG,GAAG,iBAAM,YAAY,WAAE,CAAC;QAC/B,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACjC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;SACf;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACH,8BAAC;AAAD,CAAC,CAxB4C,kBAAkB,GAwB9D;;AACD;IAAiD,6FAAuB;IACtE,qCACS,YAAsB,EACnB,YAAoB,EAC9B,OAAqC;QAArC,wCAAqC;QAHvC,YAKE,kBAAM,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,SAC3C;QALQ,kBAAY,GAAZ,YAAY,CAAU;QACnB,kBAAY,GAAZ,YAAY,CAAQ;;IAIhC,CAAC;IACS,qDAAe,GAAzB;QACE,IAAI,IAAI,GAAG,iBAAM,eAAe,WAAE,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACH,kCAAC;AAAD,CAAC,CAjBgD,uBAAuB,GAiBvE;;AACD;IAAyD,qGAAuB;IAC9E,6CACS,YAAsB,EACnB,YAAoB,EAC9B,OAAqC;QAArC,wCAAqC;QAHvC,YAKE,kBAAM,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,SAC3C;QALQ,kBAAY,GAAZ,YAAY,CAAU;QACnB,kBAAY,GAAZ,YAAY,CAAQ;;IAIhC,CAAC;IACS,6DAAe,GAAzB;QACE,IAAI,IAAI,GAAG,iBAAM,eAAe,WAAE,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACH,0CAAC;AAAD,CAAC,CAfwD,uBAAuB,GAe/E;;AACD;IAAwC,oFAAkB;IACxD,4BACS,YAAsB,EACtB,OAAa,EACV,YAAoB,EAC9B,OAAqC;QAArC,wCAAqC;QAJvC,YAME,kBAAM,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,SAE3C;QAPQ,kBAAY,GAAZ,YAAY,CAAU;QACtB,aAAO,GAAP,OAAO,CAAM;QACV,kBAAY,GAAZ,YAAY,CAAQ;QAI9B,KAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAI,CAAC,gBAAgB,EAAE,CAAC;;IAChD,CAAC;IACS,6CAAgB,GAA1B;QACE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,CAAC;IACM,kCAAK,GAAZ;QACE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IACH,yBAAC;AAAD,CAAC,CAjBuC,kBAAkB,GAiBzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClI2G;AACX;AACpD;AAMpB;AAEuB;AAEhD;IAA0D,6FAAkB;IAA5E;QAAA,qEA0CC;QA9BQ,eAAS,GAAG,UAAC,GAAS,EAAE,QAAkB,EAAE,IAAwB,EAAE,OAA8B;YACnG,QAAS,CAAC,iBAAiB,GAAG;gBAClC,KAAI,CAAC,uBAAuB,CAAC,KAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAM,OAAM,QAAS,CAAC,UAAU,GAAG,KAAK,EAAlC,CAAkC,CAAC,CAAC;gBAChG,QAAS,CAAC,UAAU,GAAG,IAAI,CAAC;YACpC,CAAC,CAAC;YACI,QAAS,CAAC,kBAAkB,GAAG;gBACnC,KAAI,CAAC,kBAAkB,CACf,QAAS,CAAC,GAAG,EACnB,IAAI,EACJ,QAAQ,EACR,IAAI,CAAC,gBAAgB,CACtB,CAAC;YACJ,CAAC,CAAC;QACJ,CAAC,CAAC;;IAiBJ,CAAC;IAzCQ,6CAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,QAAQ;SACxB,CAAC;IACJ,CAAC;IAgBM,wDAAkB,GAAzB,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7B,CAAC;IACS,kDAAY,GAAtB,UAAuB,GAAQ;QAC7B,OAAO,mDAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEM,uDAAiB,GAAxB;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACH,kCAAC;AAAD,CAAC,CA1CyD,yDAAkB,GA0C3E;;AAED;IAA6C,yFAA2B;IAAxE;;IAwBA,CAAC;IAvBQ,qCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAC9B,CAAC;IACM,2DAAyB,GAAhC,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,OAAO,IAAI,yDAAW,CAAsB,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IACM,oDAAkB,GAAzB,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAER,GAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IACS,8CAAY,GAAtB,UAAuB,GAAQ;QAC7B,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,mDAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IACH,8BAAC;AAAD,CAAC,CAxB4C,2BAA2B,GAwBvE;;AAED;IAA6C,yFAA2B;IAAxE;;IAYA,CAAC;IAXQ,qCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAC9B,CAAC;IACM,2DAAyB,GAAhC,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,OAAO,IAAI,iEAAkB,CAAW,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IACH,8BAAC;AAAD,CAAC,CAZ4C,2BAA2B,GAYvE;;AAED;IAAgD,4FAA2B;IAA3E;;IAYA,CAAC;IAXQ,wCAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;IACjC,CAAC;IACM,8DAAyB,GAAhC,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,OAAO,IAAI,0EAA2B,CAAW,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IACH,iCAAC;AAAD,CAAC,CAZ+C,2BAA2B,GAY1E;;AACD;IAAkD,8FAA2B;IAA7E;;IAgBA,CAAC;IAfQ,0CAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IACnC,CAAC;IACM,gEAAyB,GAAhC,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,OAAO,IAAI,kFAAmC,CAClC,GAAG,EACb,IAAI,CAAC,IAAI,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IACH,mCAAC;AAAD,CAAC,CAhBiD,2BAA2B,GAgB5E;;AAED;IAAoD,gGAA2B;IAA/E;;IAwBA,CAAC;IAvBQ,4CAAG,GAAV,UAAW,IAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;IACrC,CAAC;IACM,kEAAyB,GAAhC,UACE,GAAS,EACT,IAAwB,EACxB,QAAkB,EAClB,OAA8B;QAE9B,IAAM,OAAO,GAAS,QAAS,CAAC,GAAG,CAAC;QACpC,IAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,IAAI,iEAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IACS,6DAAoB,GAA9B,UAA+B,GAAS;QACtC,IAAI,MAAM,GAAgB,GAAG,CAAC,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;SACvB;QACD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAiB,MAAM,CAAC,sBAAsB,CAC5C,GAAG,CAAC,WAAW,CAAC,CACjB,CAAC;IACJ,CAAC;IACH,qCAAC;AAAD,CAAC,CAxBmD,2BAA2B,GAwB9E;;AACD;IAA2D,uGAA8B;IAAzF;;IAmBA,CAAC;IAlBQ,mDAAG,GAAV,UAAW,IAAwB,EAAE,OAAgB;QACnD,OAAO,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;IAC5D,CAAC;IACM,uDAAO,GAAd,UACE,GAAS,EACT,IAAwB,EACxB,OAA8B;QAE9B,IAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW;YACd,OAAO;gBACL,IAAI,EAAE,WAAW;aAClB,CAAC;QACJ,IAAM,IAAI,GAAQ,WAAW,CAAC,MAAM,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;QAClC,2DAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACH,4CAAC;AAAD,CAAC,CAnB0D,8BAA8B,GAmBxF;;AAED,mEAA4B,CAAC,QAAQ,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC;AACrE,mEAA4B,CAAC,QAAQ,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC;AACrE,mEAA4B,CAAC,QAAQ,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;AACxE,mEAA4B,CAAC,QAAQ,CAAC,IAAI,4BAA4B,EAAE,CAAC,CAAC;AAC1E,mEAA4B,CAAC,QAAQ,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;AAC5E,mEAA4B,CAAC,QAAQ,CAAC,IAAI,qCAAqC,EAAE,CAAC,CAAC;;;;;;;;;;;;;AChKnF;AAAA;AAAA;IAAA;IAgmBA,CAAC;IA/lBe,yCAAU,GAAuD;QAC7E,QAAQ,EAAE;YACR,UAAU,EAAE;gBACV,MAAM;gBACN,OAAO;gBACP,aAAa;gBACb,SAAS;gBACT,YAAY;gBACZ,UAAU;gBACV,iBAAiB;gBACjB,aAAa;gBACb,oBAAoB;gBACpB,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE;gBACnC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE;gBACpC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE;gBAClC,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAChD,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC/B,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACrC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAChC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACxC,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACjC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAChC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACnC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACnC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE;gBAClC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE;gBACrC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE;gBACtC,EAAE,IAAI,EAAE,gCAAgC,EAAE,GAAG,EAAE,MAAM,EAAE;gBACvD,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE;gBACzC,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAChD,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE;aAC1C;YACD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC7B,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC5B,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;aACnC;SACF;QACD,OAAO,EAAE;YACP,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC/B,aAAa;gBACb,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE;gBACxC,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE;gBACvC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;aACpC;SACF;QACD,IAAI,EAAE;YACJ,UAAU,EAAE;gBACV,eAAe;gBACf,oBAAoB;gBACpB,eAAe;gBACf,EAAE,IAAI,EAAE,aAAa,EAAE;gBACvB,EAAE,IAAI,EAAE,iBAAiB,EAAE;gBAC3B,SAAS;gBACT,aAAa;gBACb,YAAY;gBACZ,eAAe;gBACf,uBAAuB;aACxB;SACF;QACD,IAAI,EAAE;YACJ,UAAU,EAAE,CAAC,MAAM,CAAC;SACrB;QACD,kBAAkB,EAAE;YAClB,UAAU,EAAE;gBACV,UAAU;gBACV,gBAAgB;gBAChB,iBAAiB;gBACjB,yBAAyB;gBACzB,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACxC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACxC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAC1C,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACvC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC3C,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACzC,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE;aAC1C;YACD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3B,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;aAC/B;SACF;QACD,aAAa,EAAE;YACb,UAAU,EAAE;gBACV,cAAc;gBACd,iBAAiB;gBACjB,sBAAsB;gBACtB,UAAU;gBACV,aAAa;gBACb,aAAa;gBACb,gBAAgB;gBAChB,YAAY;gBACZ,eAAe;gBACf,eAAe;gBACf,mBAAmB;gBACnB,aAAa;gBACb,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,SAAS,EAAE;gBAC9C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE;gBACzC,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE;gBACxC,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,MAAM,EAAE;gBAChD,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE;gBACtC,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,YAAY,EAAE;aACnD;SACF;QACD,cAAc,EAAE;YACd,UAAU,EAAE;gBACV,WAAW;gBACX,aAAa;gBACb,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE;gBACxC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE;gBACvC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACxC,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,YAAY,EAAE;aACnD;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACxC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACxC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE;gBAClC,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE;gBACxC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAC1C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE;gBACvC,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACzC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE;aACzC;YACD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;aAC9B;SACF;QACD,YAAY,EAAE;YACZ,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACnC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;aACpC;YACD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACrC;QACD,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACtC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE;gBACtC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE;gBACtC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE;gBACvC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,YAAY,EAAE;gBACjD,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,YAAY,EAAE;gBACjD,EAAE,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,YAAY,EAAE;aACrE;YACD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SAC1C;QACD,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,SAAS,EAAE;gBAC/C,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,SAAS,EAAE;gBACnD,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE;gBACxC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACnC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE;gBACzC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE;gBACrC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,EAAE;gBAC5C,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE;gBACxC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAC5C,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAC1C,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE;gBACzC,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC7C,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,SAAS,EAAE;aACnD;YACD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC9B,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE;aACpC;SACF;QACD,QAAQ,EAAE;YACR,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE;gBAC7C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE;gBACzC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,SAAS,EAAE;gBAC9C,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,SAAS,EAAE;aACnD;SACF;QACD,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,SAAS,EAAE;gBAC3C,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,SAAS,EAAE;aACnD;SACF;QACD,QAAQ,EAAE;YACR,UAAU,EAAE;gBACV,aAAa;gBACb,cAAc;gBACd,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;gBACtC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;gBACtC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE;gBACvC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;aACvC;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,eAAe;gBACf,aAAa;gBACb,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE;gBACzC,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE;gBAC7C,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;aACvC;SACF;QACD,WAAW,EAAE;YACX,UAAU,EAAE;gBACV,aAAa;gBACb,UAAU;gBACV,cAAc;gBACd,eAAe;gBACf,eAAe;gBACf,gBAAgB;gBAChB,gBAAgB;gBAChB,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE;gBAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE;gBAC3C,aAAa;gBACb,WAAW;aACZ;SACF;QACD,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,WAAW;gBACX,aAAa;gBACb,UAAU;gBACV,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE;gBAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE;gBAC3C,MAAM;aACP;SACF;QACD,qBAAqB,EAAE;YACrB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACzD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAC5B;QACD,kBAAkB,EAAE;YAClB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACzD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAC5B;QACD,qBAAqB,EAAE;YACrB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACzD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAC5B;QACD,IAAI,EAAE;YACJ,UAAU,EAAE;gBACV,WAAW;gBACX,KAAK;gBACL,KAAK;gBACL,MAAM;gBACN,aAAa;gBACb,cAAc;gBACd,UAAU;gBACV,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAC5C,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAC5C,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE;gBACxC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC3C,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC3C,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE;aACxC;SACF;QACD,OAAO,EAAE;YACP,UAAU,EAAE;gBACV,OAAO;gBACP,WAAW;gBACX,YAAY;gBACZ,WAAW;gBACX,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE;aACpC;SACF;QACD,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,YAAY;gBACZ,UAAU;gBACV,cAAc;gBACd,QAAQ;gBACR,uBAAuB;gBACvB,uBAAuB;gBACvB,aAAa;aACd;SACF;QACD,oBAAoB,EAAE;YACpB,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9B;QACD,8BAA8B,EAAE;YAC9B,UAAU,EAAE;gBACV,UAAU;gBACV,MAAM;gBACN,OAAO;gBACP,YAAY;gBACZ,UAAU;gBACV,UAAU;gBACV,uBAAuB;gBACvB,OAAO;gBACP,UAAU;gBACV,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE;gBACnC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE;gBACpC,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAChD,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACpC,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC5C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACxC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACtC,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,QAAQ,EAAE;aAC3C;YACD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;gBAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC5B,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;aAC9B;SACF;QACD,+BAA+B,EAAE;YAC/B,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE;gBACzC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE;gBACrC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE;gBACxC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE;gBAC7C,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE;gBACxC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,SAAS,EAAE;gBAC9C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE;gBACzC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAC1C,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE;aAC1C;YACD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC9B,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE;aACpC;SACF;QACD,iCAAiC,EAAE;YACjC,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE;gBACzC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE;gBACrC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE;gBACxC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE;gBACxC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAC1C,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE;aAC1C;YACD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC9B,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE;aACpC;SACF;QACD,+BAA+B,EAAE;YAC/B,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE;gBACzC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE;gBACrC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE;gBACxC,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,SAAS,EAAE;gBAC1C,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE;gBACxC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAC1C,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE;aAC1C;YACD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC9B,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE;aACpC;SACF;QACD,2BAA2B,EAAE;YAC3B,UAAU,EAAE;gBACV,WAAW;gBACX,KAAK;gBACL,KAAK;gBACL,MAAM;gBACN,aAAa;gBACb,UAAU;gBACV,WAAW;aACZ;YACD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SAC1C;QACD,8BAA8B,EAAE;YAC9B,UAAU,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC;YAChD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SAC1C;QACD,8BAA8B,EAAE;YAC9B,UAAU,EAAE;gBACV,cAAc;gBACd,WAAW;gBACX,YAAY;gBACZ,WAAW;gBACX,YAAY;aACb;SACF;QACD,iCAAiC,EAAE;YACjC,UAAU,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC;YACxC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SAC1C;QACD,6BAA6B,EAAE;YAC7B,UAAU,EAAE;gBACV,YAAY;gBACZ,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE;gBACtC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE;gBACtC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE;gBACvC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,YAAY,EAAE;gBACjD,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,YAAY,EAAE;aAClD;YACD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACzC;QACD,gBAAgB,EAAE;YAChB,UAAU,EAAE;gBACV,WAAW;gBACX,MAAM;gBACN,OAAO;gBACP,YAAY;gBACZ,WAAW;gBACX,MAAM;gBACN,aAAa;gBACb,mBAAmB;gBACnB,YAAY;aACb;SACF;QACD,oBAAoB,EAAE;YACpB,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9B;QACD,eAAe,EAAE;YACf,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,mBAAmB,CAAC;SACxD;QACD,uBAAuB,EAAE;YACvB,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;SACnC;QACD,YAAY,EAAE;YACZ,UAAU,EAAE;gBACV,YAAY;gBACZ,YAAY;gBACZ,eAAe;gBACf,eAAe;gBACf,aAAa;gBACb,EAAE,IAAI,EAAE,eAAe,EAAE;gBACzB,EAAE,IAAI,EAAE,kBAAkB,EAAE;gBAC5B,cAAc;gBACd,iBAAiB;gBACjB,eAAe;gBACf,qBAAqB;gBACrB,eAAe;gBACf,eAAe;gBACf,mBAAmB;gBACnB,eAAe;gBACf,eAAe;gBACf,qBAAqB;gBACrB,qBAAqB;gBACrB,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC1C,EAAE,IAAI,EAAE,2BAA2B,EAAE,GAAG,EAAE,MAAM,EAAE;gBAClD,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAChD,EAAE,IAAI,EAAE,2BAA2B,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACpD,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE;gBACtC,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,YAAY,EAAE;aACnD;SACF;QACD,SAAS,EAAE;YACT,UAAU,EAAE;gBACV,MAAM;gBACN,OAAO;gBACP,aAAa;gBACb,SAAS;gBACT,UAAU;gBACV,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE;gBACnC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE;gBACpC,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,QAAQ,EAAE;aACjD;YACD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC7B,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC5B,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;aACnC;SACF;QACD,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,YAAY;gBACZ,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAChD,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC/B,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAC3C,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAChC,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACzC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACjC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACtC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE;gBAChC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE;gBACxC,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,WAAW,EAAE;gBACjD,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,WAAW,EAAE;gBAChD,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACnC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;aACpC;YACD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;SAC1C;QACD,IAAI,EAAE;YACJ,UAAU,EAAE;gBACV,iBAAiB;gBACjB,uBAAuB;gBACvB,iBAAiB;gBACjB,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACzC,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,EAAE,QAAQ,EAAE;aACvD;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,OAAO;gBACP,aAAa;gBACb,WAAW;gBACX,QAAQ;gBACR,MAAM;gBACN,YAAY;gBACZ,WAAW;gBACX,OAAO;gBAEP,EAAE,IAAI,EAAE,2BAA2B,EAAE,GAAG,EAAE,YAAY,EAAE;gBACxD,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC3C,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC3C,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC3C,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC1C,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE;gBACvC,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC9C;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,GAAG,EAAE,YAAY;iBAClB;gBACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC7C,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,YAAY,EAAE;gBACjD,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAClD,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC9C,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC9C,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAClD,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE;gBACtC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE;gBAE1C,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,UAAU,EAAE;gBAClD,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,EAAE,UAAU,EAAE;gBACxD,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,UAAU,EAAE;gBAChD,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,UAAU,EAAE;gBACjD,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE;gBACzC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,UAAU,EAAE;gBAC/C,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE,UAAU,EAAE;gBAClD;oBACE,IAAI,EAAE,6BAA6B;oBACnC,GAAG,EAAE,UAAU;iBAChB;gBACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,UAAU,EAAE;gBAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE;gBAC1C,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,EAAE;gBAC5C,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,EAAE;gBAE5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,EAAE;gBACxC,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAEzC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAC1C,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE;gBAElC,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC7C,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE;gBACvC,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC7C,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,EAAE;gBAE7C,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,EAAE;gBAE9C,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,iBAAiB,EAAE;gBACjD,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,iBAAiB,EAAE;gBACrD,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,iBAAiB,EAAE;gBACjD,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,iBAAiB,EAAE;gBAC5D,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,iBAAiB,EAAE;gBAC5D,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE;gBAC/C,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,iBAAiB,EAAE;gBAEvD,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,EAAE;gBACzC,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAC7C,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,EAAE;gBACxC,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,EAAE;gBAE5C,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC7B,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE;gBACrC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE;gBACnC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE;aACjC;YACD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3B,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;gBAClC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;gBAChC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC5B,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;gBAClC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE;gBACvC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;aAC9B;SACF;QACD,aAAa,EAAE;YACb,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9B;KACF,CAAC;IACJ,qCAAC;CAAA;AAhmB0C;;;;;;;;;;;;;AClB3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGsB;AACgB;AACU;AACsB;AAEtE;IAAA;IASA,CAAC;IAHC,sBAAW,wDAAI;aAAf;YACE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,CAAC;;;OAAA;IACH,6CAAC;AAAD,CAAC;;AAED;IAAA;QAGS,YAAO,GAAY,IAAI,CAAC;QACxB,UAAK,GAAW,CAAC,CAAC;QAClB,eAAU,GAAkD,EAAE,CAAC;IACxE,CAAC;IAAD,wCAAC;AAAD,CAAC;;AAED;IAKE,kCACS,GAAQ,EACR,OAAqC,EAC5C,SAAwB,EACxB,QAAuB,EACf,SAAqB,EACrB,cAAgD;QAJjD,wCAAqC;QAC5C,4CAAwB;QACxB,0CAAuB;QACf,4CAAqB;QACrB,sDAAgD;QALjD,QAAG,GAAH,GAAG,CAAK;QACR,YAAO,GAAP,OAAO,CAA8B;QAGpC,cAAS,GAAT,SAAS,CAAY;QACrB,mBAAc,GAAd,cAAc,CAAkC;QAPlD,SAAI,GAA6C,EAAE,CAAC;QAS1D,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,sDAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IACM,8CAAW,GAAlB,UAAmB,YAAoB;QACrC,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IACD,sBAAW,8CAAQ;aAAnB;YACE,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5D,CAAC;;;OAAA;IACD,sBAAW,6CAAO;aAAlB;YACE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;oBAC5D,OAAO,KAAK,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;QACd,CAAC;;;OAAA;IACO,qDAAkB,GAA1B;QACE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC/B,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,2DAAY,CAAC,iBAAiB,CACrC,IAAI,CAAC,GAAG,EACR,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,CACpB;aACF,CAAC;SACH;IACH,CAAC;IACO,wDAAqB,GAA7B,UAA8B,QAAmC;QAC/D,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;IAC9B,CAAC;IACM,+CAAY,GAAnB,UAAoB,OAAe;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACvD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACM,0CAAO,GAAd;QACE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACM,gDAAa,GAApB,UACE,GAAsC;QAEtC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;SACtC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACO,4CAAS,GAAjB,UAAkB,SAAiB;QACjC,IAAI,CAAC,SAAS,EAAE;YACd,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;SAChC;QACD,IAAI,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAChD,IAAI,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvE,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAAE,SAAS;gBACjE,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;oBAClD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC5C;aACF;YACD,KACE,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjE,CAAC,IAAI,CAAC,EACN,CAAC,EAAE,EACH;gBACA,IAAI,YAAY,GACd,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACzD,IAAI,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;oBAChD,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACnC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChD;aACF;SACF;QACD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;gBACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aAC9C;SACF;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IACO,qDAAkB,GAA1B,UACE,WAAgB,EAChB,KAAsB;QAAtB,qCAAsB;QAEtB,IAAI,KAAK,EAAE;YACT,IAAI,KAAG,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE;gBACzB,KAAG,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;aAC/B;YACD,IAAI,WAAW,CAAC,OAAO,KAAK,KAAK,EAAE;gBACjC,KAAG,CAAC,OAAO,GAAG,KAAK,CAAC;aACrB;YACD,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE;gBACvB,KAAG,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;aAC/B;SACF;QACD,IAAI,QAAQ,GAAG,OAAO,WAAW,IAAI,QAAQ,CAAC;QAC9C,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAC7D,IACE,CAAC,OAAO,CAAC,OAAO;YAChB,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;YAEzD,OAAO,KAAK,CAAC;QACf,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,0DAAQ,CAAC,YAAY,CAAC,cAAc,CAAC;QAC9E,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;YAC5C,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC;SAC3B;QACD,IAAI,kBAAkB,GAAG,IAAI,sCAAsC,EAAE,CAAC;QACtE,kBAAkB,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC/C,kBAAkB,CAAC,QAAQ;YACzB,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,kBAAkB,CAAC,KAAK;YACtB,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,kBAAkB,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC3F,kBAAkB,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACO,iEAA8B,GAAtC,UACE,UAAyD;QAEzD,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACrE,IAAI,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;YACvD,IAAI,CAAC,CAAC,MAAM,EAAE;gBACZ,IAAI,IAAI,GAAG,IAAI,CAAC,sBAAsB,CACpC,MAAM,EACN,cAAc,CACf,CAAC;gBACF,IAAI,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACpD;SACF;IACH,CAAC;IACO,uDAAoB,GAA5B,UACE,QAAgB;QAEhB,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;YAAE,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;gBACvD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,wDAAqB,GAA7B,UAA8B,QAAmC;QAC/D,IAAG,CAAC,QAAQ,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QACvC,IAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,OAAO,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnG,OAAO,QAAQ,CAAC,cAAc,CAAC;IACjC,CAAC;IACO,uDAAoB,GAA5B,UAA6B,cAAsB;QACjD,OAAO,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IACvD,CAAC;IACO,yDAAsB,GAA9B,UACE,GAAsC,EACtC,QAAgB;QAEhB,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;SAChD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,iDAAc,GAAtB,UAAuB,OAAe;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACvD;QACD,IAAI,GAAG,GAAG,IAAI,iCAAiC,EAAE,CAAC;QAClD,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,IAAI,OAAO,IAAI,0DAAQ,CAAC,YAAY,CAAC,cAAc,EAAE;YACnD,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;SAChB;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IACO,oDAAiB,GAAzB,UAA0B,GAA2C,EAAE,cAAmB;QACxF,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAG,EAAE;YACnC,IAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAChC,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,SAAS;YACnC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAG,EAAE;gBACrC,IAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClE,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;aACjC;SACF;IACH,CAAC;IACO,2DAAwB,GAAhC,UACE,SAAiB;QAEjB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IACE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,0EAA8B,CAAC,UAAU,CAAC,SAAS,CAAC,EACpD;YACA,IAAI,WAAW,GACb,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;YACjE,IACE,WAAW,IAAI,SAAS;gBACxB,CAAC,CAAC,0EAA8B,CAAC,UAAU,CAAC,WAAW,CAAC,EACxD;gBACA,MAAM,CAAC,IAAI,CAAC,0EAA8B,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;aACrE;YACD,MAAM,CAAC,IAAI,CAAC,0EAA8B,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC/C,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;YACvD,OAAO,MAAM,CAAC;SACf;QACD,IAAI,YAAY,GAAG,SAAS,CAAC;QAC7B,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,OAAO,YAAY,EAAE;YACnB,IAAI,SAAS,GAA6B,CACxC,sDAAiB,CAAC,SAAS,CAAC,YAAY,CAAC,CAC1C,CAAC;YACF,IAAI,CAAC,SAAS;gBAAE,MAAM;YACtB,IAAI,QAAQ,GAAG,0EAA8B,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzE,IAAI,QAAQ,EAAE;gBACZ,IAAI,QAAQ,CAAC,UAAU,EAAE;oBACvB,IAAI,CAAC,GAAG,CAAC,CAAC;oBACV,OAAO,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE;wBACrC,IAAI,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBAClC,IAAI,QAAQ,GAAG,OAAO,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC1D,IAAI,OAAO,GAAG,0DAAQ,CAAC,YAAY,CAAC,cAAc,CAAC;wBACnD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;4BAC1C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;yBACpB;wBACD,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;4BAC5C,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,QAAQ;4BACxC,CAAC,CAAC,IAAI,CAAC;wBACT,IAAI,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;wBAClE,IAAI,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,KAAK,OAAO,EAAE;4BAC9D,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;yBAClC;6BAAM;4BACL,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;4BAChC,CAAC,EAAE,CAAC;yBACL;qBACF;iBACF;gBACD,IAAI,QAAQ,CAAC,IAAI,EAAE;oBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC7C,mBAAmB;4BACjB,mBAAmB,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC;wBAC3D,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;qBAC9C;iBACF;gBACD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAC1B;YACD,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC;SACrC;QAED,IAAI,CAAC,mBAAmB,EAAE;YACxB,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;SAClD;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACO,0DAAuB,GAA/B,UACE,YAAuC;QAEvC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC,CAAC,YAAY,CAAC,QAAQ;YAAE,OAAO,YAAY,CAAC,QAAQ,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IACO,sDAAmB,GAA3B,UACE,IAA4C,EAC5C,cAAmB,EAAE,UAA2B;QAA3B,+CAA2B;QAEhD,IAAI,QAAQ,GAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACjD,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;gBAClE,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC;gBACxC,SAAS;YACX,IAAI,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,OAAO,GAAG,CAAC,CAAC,YAAY;gBAC1B,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC;oBAChB,CAAC,CAAC,0DAAQ,CAAC,YAAY,CAAC,cAAc;oBACtC,CAAC,CAAC,QAAQ,CAAC;YACf,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,0DAAQ,CAAC,YAAY,CAAC,cAAc,EAAE;gBACpF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE;iBACzD,CAAC,CAAC;aACJ;YACD,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC7C,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,EAAE;wBACpC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;qBAC7C;iBACF;aACF;YACD,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC7B,GAAG,EAAE,OAAO;aACb,CAAC,CAAC;SACJ;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACrB;IACH,CAAC;IACO,iDAAc,GAAtB,UACE,UAAyD;QAEzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,OAAO;QACvC,IAAI,KAAK,GAAkD,EAAE,CAAC,MAAM,CAClE,UAAU,CACX,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE;gBAC/B,KAAK,GAAG,CAAC,CAAC;aACX;YACD,IAAI,KAAK,GAAG,CAAC;gBAAE,SAAS;YACxB,IAAI,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE;gBACjB,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;aAChC;YACD,IAAI,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE;gBAC7B,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC;iBAAM;gBACL,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B;SACF;IACH,CAAC;IACH,+BAAC;AAAD,CAAC;;;;;;;;;;;;;;ACpYD;AAAA;AAAA;AAAA;AAAA;AAAA;AAC6F;AAC1B;AACD;AAElE;IAAA;IAwHA,CAAC;IAtHe,gCAAc,GAA5B,UAA6B,SAAiB,EAAE,kBAA0B;QACxE,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YAC7C,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SAC/C;QACD,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACpE,CAAC;IACa,qCAAmB,GAAjC,UACE,SAAiB,EACjB,cAAoC,EAAE,cAA+B;QAArE,sDAAoC;QAAE,uDAA+B;QAErE,IAAI,GAAG,GAAG,0DAAQ,CAAC,mBAAmB,IAAI,qEAAmB,CAAC,QAAQ;YACpE,CAAC,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC;YAChD,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAC5D;YACA,IAAM,OAAK,GAAG,EAAE,CAAC;YACjB,GAAG,CAAC,OAAO,CAAC,cAAI,IAAI,cAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAhB,CAAgB,CAAC,CAAC;YACtC,GAAG,GAAG,cAAc;iBACjB,MAAM,CAAC,UAAC,IAAI,IAAK,cAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAxB,CAAwB,CAAC,CAAC;SAC/C;QACD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,CAAC;IACa,+BAAa,GAA3B,UACE,GAAa,EACb,cAAsB,EACtB,WAAuB;QAAvB,gDAAuB;QAEvB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,cAAc,IAAI,GAAG,CAAC,OAAO,EAAE;YAAE,OAAO,IAAI,CAAC;QACxE,IAAI,uBAAuB,GAAG,wDAAe,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;QACzF,IAAI,WAAW,GAAG,2DAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACpF,IAAG,CAAC,WAAW,EAAE;YACf,WAAW,GAAG,sDAAU,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;SAC1D;QACD,IAAI,WAAW,YAAY,8DAAkB,KAAI,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,OAAO;YAAE,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9G,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAC5B,IAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;QAClC,IAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;YACrB,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;SACxB;QACD,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;QAC/E,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,KAAK,GAAmB,GAAG,CAAC,MAAM,CAAC;QACvC,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,KAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QACjC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACzB,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrC,OAAa,KAAM,CAAC,YAAY,CAAC;QACjC,WAAW,CAAC,YAAY,EAAE,CAAC;QAC3B,OAAO,WAAW,CAAC;IACrB,CAAC;IACc,4BAAU,GAAzB,UAA0B,IAAS,EAAE,cAAsB,EAAE,gBAAwB,EAAE,WAAgB;QACrG,iBAAiB,CAAC,qCAAqC,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAC3F,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QACzE,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAChF,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAChF,CAAC;IACc,uDAAqC,GAApD,UAAqD,IAAS,EAAE,cAAsB,EAAE,WAAgB;QACtG,IAAM,uBAAuB,GAAG,wDAAe,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;QAC3F,IAAG,CAAC,uBAAuB;YAAE,OAAO;QACpC,IAAG,cAAc,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAChD,IAAI,CAAC,SAAS,GAAG,uBAAuB,CAAC,SAAS,CAAC;SACpD;QACD,IAAG,cAAc,KAAK,aAAa;YACjC,cAAc,KAAK,UAAU;YAC7B,cAAc,KAAK,UAAU;YAC7B,cAAc,KAAK,YAAY;YAC/B,cAAc,KAAK,SAAS,EAC5B;YACA,IAAG,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC;aAChD;SACF;aAAM;YACL,KAAI,IAAI,GAAG,IAAI,uBAAuB,EAAE;gBACtC,IAAG,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;oBACpC,IAAI,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;iBAC1C;aACF;SACF;IACH,CAAC;IACc,uCAAqB,GAApC,UAAqC,IAAS,EAAE,cAAsB,EAAE,gBAAwB;QAC9F,IAAG,sDAAU,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,CAAC;YACnD,sDAAU,CAAC,cAAc,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;YACjE,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAG,IAAI,UAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAA3D,CAA2D,CAAC,CAAC;SACrG;QACD,IAAG,sDAAU,CAAC,cAAc,CAAC,cAAc,EAAE,oBAAoB,CAAC;YAC/D,sDAAU,CAAC,cAAc,CAAC,gBAAgB,EAAE,QAAQ,CAAC;YACrD,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAG,IAAI,QAAK,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAhD,CAAgD,CAAC,CAAC;SAC1F;IACH,CAAC;IACc,qCAAmB,GAAlC,UAAmC,IAAS,EAAE,cAAsB,EAAE,WAAgB;QACpF,IAAG,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9C,IAAG,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,OAAO;gBACrC,CAAC,mDAAO,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;aAChC;SACF;QACD,IAAG,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,sDAAU,CAAC,cAAc,CAAC,cAAc,EAAE,oBAAoB,CAAC,EAAE;YACxF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;SAChC;IACH,CAAC;IACc,qCAAmB,GAAlC,UAAmC,IAAS,EAAE,cAAsB,EAAE,gBAAwB;QAC5F,IAAG,sDAAU,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC;YACzD,sDAAU,CAAC,cAAc,CAAC,gBAAgB,EAAE,OAAO,CAAC;YACpD,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB;QACD,IAAG,sDAAU,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,CAAC;YAClD,sDAAU,CAAC,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC;YAC3D,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACtC,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAC9B;IACH,CAAC;IAtHa,6BAAW,GAAG,EAAE,CAAC;IAuHjC,wBAAC;CAAA;AAxH6B;AAyH9B,SAAS,mBAAmB,CAAC,SAAiB,EAAE,cAA+B;IAA/B,uDAA+B;IAC7E,IAAG,SAAS,KAAK,OAAO;QAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC/F,IAAI,OAAO,GAAG,sDAAU,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,IAAI,cAAc,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;YACnD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC3B;KACF;IACD,IAAG,SAAS,KAAK,cAAc;QAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,IAAM,OAAO,GAAG,kEAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxD,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAG,EAAE;QACvC,IAAI,cAAc,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;YACnD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC3B;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,mCAAmC;IAC1C,IAAI,OAAO,GAAG,sDAAU,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAS;YACrB,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACpE;KACF;IACD,iBAAiB,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,iBAAiB,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,mCAAmC,EAAE,CAAC;;;;;;;;;;;;AC7JtC,uC;;;;;;;;;;;;;;;;;;ACAqE;AAQrE;IAAsC,kFAAI;IAGxC,0BAAmB,OAA+B;QAAlD,YACE,iBAAO,SAER;QAHkB,aAAO,GAAP,OAAO,CAAwB;QAEhD,KAAI,CAAC,KAAK,GAAG,EAAE,CAAC;;IAClB,CAAC;IACD,sBAAW,qCAAO;aAAlB;YACE,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAC/B,CAAC;;;OAAA;IACD,sBAAW,qCAAO;aAAlB;YACE,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;YAC9B,OAAO,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACrD,CAAC;;;OAAA;IACM,uCAAY,GAAnB,UAAoB,GAAS;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IACM,+BAAI,GAAX;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IACM,+BAAI,GAAX;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IACM,gCAAK,GAAZ;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;YAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SAClD;IACH,CAAC;IACM,2CAAgB,GAAvB,UAAwB,GAAS,EAAE,YAAoB;QACrD,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC;SAC/C;QACD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACM,wCAAa,GAApB,UAAqB,GAAS;QAC5B,IAAI,IAAI,CAAC,oBAAoB;YAAE,OAAO;QACtC,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,GAAG,EAAE,GAAG;SACT,CAAC,CAAC;IACL,CAAC;IACD,sBAAY,0CAAY;aAAxB;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC;;;OAAA;IACO,mCAAQ,GAAhB,UAAiB,GAAS;QACxB,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG;gBAAE,OAAO,CAAC,CAAC;SACxC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACO,wCAAa,GAArB,UAAsB,KAAa;QACjC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO;QACpD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACpC,CAAC;IACO,sCAAW,GAAnB;QACE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACzB;SACF;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,CAxEqC,gDAAI,GAwEzC;;;;;;;;;;;;;;AChFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOqB;AACqC;AAEJ;AAEtD,IAAY,OAOX;AAPD,WAAY,OAAO;IACjB,2CAAO;IACP,yCAAM;IACN,qCAAI;IACJ,uCAAK;IACL,6CAAQ;IACR,yCAAM;AACR,CAAC,EAPW,OAAO,KAAP,OAAO,QAOlB;AACD;IAAA;IAqTA,CAAC;IApTe,2BAAc,GAA5B,UAA6B,IAAgB;QAC3C,OAAO,YAAY,CAAC,UAAU,CAC5B,IAAI,EACJ,sEAAkB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAC/C,CAAC;IACJ,CAAC;IACa,oCAAuB,GAArC,UAAsC,IAAY;QAChD,OAAO,YAAY,CAAC,mBAAmB,CAAC,IAAI,EAAE,sEAAkB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChG,CAAC;IACa,+BAAkB,GAAhC,UAAiC,IAAgB;QAC/C,OAAO,YAAY,CAAC,UAAU,CAC5B,IAAI,EACJ,sEAAkB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CACnD,CAAC;IACJ,CAAC;IACa,4BAAe,GAA7B,UAA8B,IAAgB;QAC5C,OAAO,YAAY,CAAC,UAAU,CAC5B,IAAI,EACJ,sEAAkB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAChD,CAAC;IACJ,CAAC;IACa,4BAAe,GAA7B,UAA8B,IAAY;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;YAC9D,GAAG,EAAE,CAAC;SACP;QACD,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClC,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;YACrB,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;SACrC;QACD,GAAG,EAAE,CAAC;QACN,OAAO,IAAI,GAAG,GAAG,CAAC;IACpB,CAAC;IACa,uBAAU,GAAxB,UAAyB,IAAgB,EAAE,QAAgB;QACzD,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;SAC3B;QACD,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAAE,MAAM;YAC5C,GAAG,EAAE,CAAC;SACP;QACD,OAAO,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IACa,gCAAmB,GAAjC,UAAkC,IAAY,EAAE,QAAgB;QAC9D,IAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxD,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,mDAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IACa,0BAAa,GAA3B,UAA4B,GAAQ;QAClC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC;QACpD,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,MAAM;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC;QACjD,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC;QACnD,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,QAAQ;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC;QACrD,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,sBAAsB;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC;QACnE,IAAI,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;QACzC,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC;IACa,6BAAgB,GAA9B,UAA+B,GAAQ;QACrC,IAAI,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,OAAO,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QAChD,IAAI,OAAO,KAAK,OAAO,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC;QAC5C,IAAI,OAAO,KAAK,OAAO,CAAC,KAAK;YAAE,OAAO,OAAO,CAAC;QAC9C,IAAI,OAAO,KAAK,OAAO,CAAC,QAAQ;YAAE,OAAO,UAAU,CAAC;QACpD,IAAI,OAAO,KAAK,OAAO,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEa,0BAAa,GAA3B,UAA4B,GAAQ,EAAE,eAAuB;QAAvB,yDAAuB;QAC3D,IAAI,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,OAAO,CAAC,MAAM;YAC5B,OAAO,sEAAkB,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC3D,IAAI,eAAe,IAAI,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,eAAe,IAAI,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IACa,wBAAW,GAAzB,UACE,OAAY,EACZ,aAA8B;QAA9B,qDAA8B;QAE9B,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,mBAAmB;YAC7B,OAAO,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IACa,8BAAiB,GAA/B,UACE,GAAQ,EACR,QAA4B,EAC5B,OAAqC,EACrC,QAAuB,EACvB,SAAqB,EACrB,cAAyC;QAHzC,wCAAqC;QACrC,0CAAuB;QACvB,4CAAqB;QACrB,sDAAyC;QAEzC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QACjD,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ;YACrE,OAAO,KAAK,CAAC;QACf,IACE,CAAC,CAAC,QAAQ,CAAC,SAAS;YACpB,CAAC,CAAC,GAAG,CAAC,aAAa;YACnB,CAAO,QAAQ,CAAC,WAAW,CAAE,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC;YAExD,OAAO,KAAK,CAAC;QACf,IAAI,OAAO,GAAG,CAAC,CAAC,OAAO;YACrB,CAAC,CAAC,UAAC,MAAW,EAAE,QAA4B;gBAC1C,OAAO,OAAO,CAAC,yBAAyB,CACtC,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,cAAc,CACf,CAAC;YACJ,CAAC;YACD,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IACa,mCAAsB,GAApC,UAAqC,EAAe;QAClD,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,cAAc;YAAE,OAAO;QACtC,IAAI,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;QACtC,IAAI,aAAa,GAAG,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,IAAI,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;QACxC,IAAI,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,SAAS,EAAE;YACtC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,SAAS,GAAG,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC;YACjD,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE;gBACnD,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;IACH,CAAC;IACa,6BAAgB,GAA9B,UAA+B,EAAe;QAC5C,OAAO,CAAC,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC9D,IAAI,CAAC,EAAE,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC;YAClC,EAAE,GAAgB,EAAE,CAAC,YAAY,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACa,4BAAe,GAA7B,UACE,IAAgB,EAChB,GAAQ,EACR,QAAgB;QAEhB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,IAAI,QAAQ;YAAE,OAAO,KAAK,CAAC;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACa,gCAAmB,GAAjC,UACE,IAAsB,EACtB,GAAqB;QAErB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;SACnD;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;YAC5B,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5B;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;SACjE;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBACjC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aAC9B;YACD,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD;IACH,CAAC;IACa,gCAAmB,GAAjC,UAAkC,GAAS;QACzC,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;IACjC,CAAC;IACa,+BAAkB,GAAhC,UAAiC,GAAS;QACxC,OAAO,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACjC,CAAC;IACa,yBAAY,GAA1B,UAA2B,GAAS;QAClC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;IAClD,CAAC;IACa,6BAAgB,GAA9B,UAA+B,IAAY,EAAE,eAAwB;QACnE,IAAI,UAAU,GAAG,0EAAqB,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC;QAC1E,IAAI,CAAC,CAAC,eAAe,EAAE;YACrB,UAAU,IAAI,YAAY,GAAG,eAAe,GAAG,oBAAoB,CAAC;SACrE;QACD,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACa,qBAAQ,GAAtB,UAAuB,IAAY;QACjC,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACc,sCAAyB,GAAxC,UAAyC,IAAS;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IACa,+BAAkB,GAAhC,UAAiC,YAAiB;QAChD,YAAY,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAC1C,YAAY,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpD,YAAY,CAAC,yBAAyB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aACjE;SACF;IACH,CAAC;IACa,oCAAuB,GAArC,UAAsC,IAAS;QAC7C,IAAI,MAAM,GAAG,IAAI;aACd,MAAM,CAAC,UAAC,GAAG,IAAK,QAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAtB,CAAsB,CAAC;aACvC,GAAG,CAAC,UAAC,GAAG;YACP,UAAG,CAAC,KAAK;iBACN,GAAG,CAAC,UAAC,IAAI,IAAK,WAAI,CAAC,KAAK,IAAI,EAAE,EAAhB,CAAgB,CAAC;iBAC/B,IAAI,CAAC,qDAAS,CAAC,SAAS,CAAC;iBACzB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAHrB,CAGqB,CACtB;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,MAAM,CAAC;IAChB,CAAC;IAEa,oCAAuB,GAArC,UAAsC,KAAkB;QACtD,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;YACjB,IAAI,IAAI;gBAAE,IAAI,IAAI,IAAI,CAAC;YACvB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;YACnB,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAEa,oCAAuB,GAArC,UACE,IAAY,EACZ,UAAgC,EAChC,SAAiB;QAEjB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,SAAS;YACxB,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,qDAAS,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,SAAS,GAAG,sDAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAClD,UAAU,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;gBACtB,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvB;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IACa,sBAAS,GAAvB,UAAwB,KAAiB,EAAE,YAAqB;QAArB,oDAAqB;QAC9D,IAAM,SAAS,GAAG,UAAC,GAAW,EAAE,KAAK;YACnC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,OAAM,KAAK,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE;gBAClE,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrB,KAAK,EAAG,CAAC;aACV;YACD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,UAAC,CAAM,EAAE,CAAM;YACxB,IAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,IAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;gBAAE,KAAK,EAAE,CAAC;YAC1F,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;gBAC9C,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;oBAAE,KAAK,EAAE,CAAC;gBAChF,IAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpC,IAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpC,IAAG,IAAI,GAAG,IAAI;oBAAE,OAAO,CAAC,CAAC,CAAC;gBAC1B,IAAG,IAAI,GAAG,IAAI;oBAAE,OAAO,CAAC,CAAC;aAC1B;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IACa,wCAA2B,GAAzC,UAA0C,IAAY,EAAE,MAAmB;QAAnB,oCAAmB;QACzE,IAAM,cAAc,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACxC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAG,EAAE;YAC9C,IAAM,MAAM,GAAG,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAChD,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnC,IAAG,KAAK,GAAG,CAAC,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACtD;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,mBAAC;AAAD,CAAC;;;;;;;;;;;;;;ACzUD;AAAA;AAAA;AAAA;AAA0C;AACnC,IAAI,SAAS,CAAC;AACrB,IAAM,IAAI,GAAS,gDAA6C,CAAC;AACjE,uDAAW,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;ACHA;AACJ;AAEtC;IAAkC,qFAAW;IAC3C,6BAAY,OAAY;QAAxB,YACE,iBAAO,SAGR;QAFC,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzB,KAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;;IACzB,CAAC;IAIH,0BAAC;AAAD,CAAC,CATiC,uDAAW,GAS5C;AAED;IAOE,0BAAmB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;QACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IACD,sBAAW,oCAAM;aAAjB;YACE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;;;OAAA;IACD,sBAAW,2CAAa;aAAxB;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;QAC/D,CAAC;;;OAAA;IACS,kCAAO,GAAjB;QACE,IAAI;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,kDAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtD;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;gBACjC,IAAI,EAAE,KAAK,CAAC,OAAO;aACpB,CAAC,CAAC;SACJ;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,aAAa,GAAG,IAAI,kDAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,IAAI,EAAE;gBACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3D,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;wBACjC,IAAI,EAAE,KAAK,CAAC,kBAAkB,EAAE;qBACjC,CAAC,CAAC;iBACJ;aACF;SACF;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACO,8CAAmB,GAA3B,UAA4B,OAAY;QACtC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QACjC,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;YACvB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE;gBACrB,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;aAC/B;SACF;IACH,CAAC;IACO,8CAAmB,GAA3B;QACE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI;YAAE,OAAO,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtD,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACvC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aAChC;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACO,qDAA0B,GAAlC,UAAmC,OAAc;QAC/C,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO;QACnD,IAAI,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACrC,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,OAAO,GAAW,CAAC,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAAE,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;YACrC,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE;gBACvB,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC;aAC/B;iBAAM;gBACL,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;oBACrB,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC;iBAC7B;aACF;YACD,OAAO,GAAG,EAAE,CAAC;SACd;IACH,CAAC;IACO,8CAAmB,GAA3B,UACE,aAAkB,EAClB,OAAe,EACf,EAAU;QAEV,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;QACtE,IAAI,OAAO,GAAG,OAAO,CAAC;QACtB,OAAO,OAAO,GAAG,EAAE,EAAE;YACnB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,WAAW,EAAE;gBAC7D,MAAM,CAAC,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;aACnB;iBAAM;gBACL,MAAM,CAAC,MAAM,EAAE,CAAC;aACjB;YACD,OAAO,EAAE,CAAC;SACX;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACO,qCAAU,GAAlB,UAAmB,OAAc;QAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;YAClB,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACzC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;aACxC;SACF;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,UAAC,GAAG,EAAE,GAAG;YAC1B,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE;gBAAE,OAAO,CAAC,CAAC;YAC9B,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IACH,uBAAC;AAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC7HoB;AAEmD;AAE1B;AAwC9C;IAA6C,yFAAI;IAC/C,iCAAoB,OAAyB;QAA7C,YACE,iBAAO,SACR;QAFmB,aAAO,GAAP,OAAO,CAAkB;;IAE7C,CAAC;IAIM,6CAAW,GAAlB;QACE,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7C;IACH,CAAC;IAPW;QAAX,4DAAQ,EAAE;yDAAc;IACR;QAAhB,iEAAa,EAAE;0DAAmC;IAChB;QAAlC,4DAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;8DAAoB;IAMxD,8BAAC;CAAA,CAZ4C,gDAAI,GAYhD;AAZmC;AAapC;IAAyC,qFAAM;IAC7C,6BAAoB,IAA0B;QAA9C,YACE,kBAAM,IAAI,CAAC,SACZ;QAFmB,UAAI,GAAJ,IAAI,CAAsB;;IAE9C,CAAC;IAOD,oCAAM,GAAN;QACE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACH,0BAAC;AAAD,CAAC,CAbwC,kDAAM,GAa9C;;AAED;;GAEG;AACH;IACU,iFAA4C;IA6FpD,yBACU,kBAAwC,EACzC,OAA2B,EAClC,oBAA4B;QAFpB,8DAAwC;QACzC,wCAA2B;QAClC,mEAA4B;QAH9B,YAKE,iBAAO,SAGR;QAPS,wBAAkB,GAAlB,kBAAkB,CAAsB;QACzC,aAAO,GAAP,OAAO,CAAoB;QApF5B,uBAAiB,GAAG;YAC1B,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS;YACrG,MAAM,EAAE,SAAS,EAAE,cAAc;YACjC,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,gBAAgB,EAAE,eAAe;YAC3C,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc;SAC9C,CAAC;QAgBF;;WAEG;QACI,wBAAkB,GAAW,CAAC,CAAC;QAC9B,wCAAkC,GAAY,KAAK,CAAC;QACpD,oCAA8B,GAAY,KAAK,CAAC;QA6DtD,KAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;QAClE,KAAI,CAAC,YAAY,EAAE,CAAC;;IACtB,CAAC;IAlFa,0CAA0B,GAAxC,UAAyC,YAAoB;QAC3D,IAAI,CAAC,0DAAQ,CAAC,OAAO,IAAI,CAAC,0DAAQ,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QACzE,OAAO,0DAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAID,sBAAW,6CAAgB;QAH3B;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;aACD,UAA4B,SAAmB;YAC7C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;;;OAJA;IA2EO,sCAAY,GAApB;QAAA,iBAcC;QAbC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,GAAG,OAAO,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,IAAI,6DAAiB,CAAC,UAAC,gBAA8B,EAAE,aAA0B,EAAE,SAAc;YACxH,IAAM,IAAI,GAAG,KAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/D,KAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAC5C,KAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,CAAC,aAAa,GAAG,UAAC,gBAA8B,EAAE,IAAS;YAClF,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAC1B,KAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;aAC9D;QACH,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,mBAAmB,CAAC;IAC1D,CAAC;IACO,sDAA4B,GAApC;QAAA,iBAWC;QAVC,IAAM,mBAAmB,GAAG,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;YACzD,IAAM,GAAG,GAAG,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACnD,GAAG,CAAC,OAAO,CAAC,UAAC,IAAI;gBACf,IAAI,CAAC,KAAI,CAAC,kBAAkB,IAAI,KAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;oBAC3E,mBAAmB,CAAC,IAAI,CAAC,GAAG,wEAAY,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;iBACvD;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAEO,iDAAuB,GAA/B,UAAgC,QAAgB;QAC9C,IAAM,UAAU,GAAmC,IAAI,CAAC,UAAU,CAAC;QACnE,2CAA2C;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;SACjD;QACD,GAAG;IACL,CAAC;IACM,qCAAW,GAAlB,UAAmB,eAAoC;QACrD,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAC,IAAI,IAAK,QAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,EAArB,CAAqB,CAAC,CAAC;SAC9D;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;SAC1G;IACH,CAAC;IAKD,sBAAW,qCAAQ;QAHnB;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;aACD,UAAoB,KAAa;YAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;;;OAJA;IAQD,sBAAW,2CAAc;QAHzB;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;aACD,UAA0B,KAAa;YACrC,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChD,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B;QACH,CAAC;;;OARA;IAYD,sBAAW,kCAAK;QAHhB;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;;;OAAA;IACD,sBAAW,sCAAS;aAApB;YACE,IAAM,GAAG,GAAa,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC9B;YACD,OAAO,GAAG,CAAC;QACb,CAAC;;;OAAA;IAID,sBAAW,wCAAW;QAHtB;;WAEG;aACH;YACE,IAAM,MAAM,GAA0B,EAAE,CAAC;YACzC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ;oBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;;;OAAA;IACD;;;;OAIG;IACI,kCAAQ,GAAf,UACE,KAAkC,EAClC,QAAyB;QAAzB,2CAAyB;QAEzB,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;QACD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACnD;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IACD;;;;OAIG;IACI,uCAAa,GAApB,UAAqB,QAAkB,EAAE,OAAmB;QAAnB,wCAAmB;QAC1D,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,EAAE,CAAC;QAC3B,IAAM,IAAI,GAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnE,IAAM,KAAK,GAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,IAAM,OAAO,GAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QACpE,IAAM,IAAI,GAAyB;YACjC,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,KAAK;YACpC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe;YACjF,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YACpE,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;SACrD,CAAC;QACF,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE,OAAO;QACnC,IAAM,MAAM,GAA2B,IAAI,CAAC,WAAW,CAAC;QACxD,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB;YACzE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACD;;;;;OAKG;IACK,yCAAe,GAAvB,UAAwB,IAA0B;QAChD,IAAI,IAAI,YAAY,mBAAmB,EAAE;YACvC,OAAO,IAAI,CAAC;SACb;aACI;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC;YAChF,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;SACtC;IACH,CAAC;IACM,iCAAO,GAAd,UAAe,IAA0B,EAAE,KAAc;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IACO,qCAAW,GAAnB,UAAoB,IAA0B;QAC5C,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;IAC/C,CAAC;IACD,sBAAY,2CAAc;aAA1B;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;QAC7C,CAAC;;;OAAA;IACD;;;;OAIG;IACI,qCAAW,GAAlB,UAAmB,IAA0B;QAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAM,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD;;;;OAIG;IACI,oCAAU,GAAjB,UAAkB,IAAY;QAC5B,IAAM,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD;;OAEG;IACI,oCAAU,GAAjB;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IACD;;OAEG;IACI,0CAAgB,GAAvB;QACE,IAAM,YAAY,GAA2B,IAAI,CAAC,WAAW,CAAC;QAC9D,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACvC;IACH,CAAC;IACD;;;OAGG;IACI,uCAAa,GAApB,UAAqB,IAAY;QAC/B,IAAM,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAKD,sBAAW,0DAA6B;QAJxC;;;WAGG;aACH;YACE,OAAO,IAAI,CAAC,kCAAkC,CAAC;QACjD,CAAC;aACD,UAAyC,GAAY;YACnD,IAAI,CAAC,kCAAkC,GAAG,GAAG,CAAC;YAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;;;OAJA;IAQD,sBAAW,sDAAyB;QAHpC;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,8BAA8B,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;QAC9E,CAAC;aACD,UAAqC,GAAY;YAC/C,IAAI,CAAC,8BAA8B,GAAG,GAAG,CAAC;YAC1C,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC;YAC7D,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;;;OALA;IAaD,sBAAW,+CAAkB;QAN7B;;;;;WAKG;aACH;YACE,OAAO,IAAI,CAAC,uBAAuB,CAAC;QACtC,CAAC;aACD,UAA8B,GAAY;YACxC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC;YACnC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;;;OAJA;IAKM,sCAAY,GAAnB;QACE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAM;YACzB,IAAM,QAAQ,GAAG,sEAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACd,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACxB,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACO,+CAAqB,GAA7B;QACE,IAAI,QAAQ,GAAG,IAAI,CAAC,6BAA6B,IAAI,IAAI,CAAC,yBAAyB,CAAC;QACpF,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,8BAA8B,EAAE;gBACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B;SACF;aAAM;YACL,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,cAAc,GAAS,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;aACtD;SACF;IACH,CAAC;IAED;;;;OAIG;IACI,wCAAc,GAArB,UAAsB,IAAY,EAAE,QAAgB;QAClD,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD;;;OAGG;IACI,0CAAgB,GAAvB,UAAwB,YAAwB;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,WAAW,EAAE;gBACf,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;aACtC;SACF;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,0CAAgB,GAAvB;QACE,IAAM,QAAQ,GAAa,0DAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAC,IAAI,QAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAA7B,CAA6B,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IACM,6CAAmB,GAA1B,UAA2B,YAAoB;QAC7C,IAAI,IAAI,CAAC,yBAAyB;YAAE,OAAO;QAC3C,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;aAC1C;SACF;aAAM;YACL,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;SACpC;IACH,CAAC;IACD;;;;;OAKG;IACI,wCAAc,GAArB,UAAsB,YAAoB;QACxC,IAAI,IAAI,CAAC,6BAA6B,EAAE;YACtC,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;aAC5B;SACF;aAAM;YACL,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;aACpC;SACF;IACH,CAAC;IACD;;;;OAIG;IACI,0CAAgB,GAAvB,UAAwB,YAAoB;QAC1C,IAAI,CAAC,IAAI,CAAC,6BAA6B;YAAE,OAAO;QAChD,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;SAC3B;IACH,CAAC;IACD;;;OAGG;IACI,6CAAmB,GAA1B;QACE,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD;;;OAGG;IACI,+CAAqB,GAA5B;QACE,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACM,4CAAkB,GAAzB,UAA0B,KAAa;QACrC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAO,KAAM,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IACO,qDAA2B,GAAnC,UAAoC,WAAoB;QACtD,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,WAAW,CAAC;SACvC;IACH,CAAC;IACO,2CAAiB,GAAzB,UAA0B,YAAoB;QAC5C,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,QAAQ,GAAQ,UAAU,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY;gBAAE,OAAO,QAAQ,CAAC;SACrD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACS,wCAAc,GAAxB;QACE,IAAI,UAAU,GAAG,IAAI,KAAK,EAA2B,CAAC;QACtD,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,sEAAkB,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;YAC7G,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;gBACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACrC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC;gBAC7B,QAAQ,CAAC,SAAS,GAAG,YAAY,KAAK,kBAAkB,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;gBAC5F,cAAc,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBACxC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC3B;YACD,cAAc,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACvC,IAAI,kBAAkB,IAAI,cAAc,CAAC,kBAAkB,CAAC,EAAE;oBAC5D,IAAI,CAAC,cAAc,GAAG,kBAAkB,CAAC;iBAC1C;qBAAM;oBACL,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvE;aACF;iBAAM;gBACL,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;iBACjC;aACF;SACF;QAED,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,GAAG;YAC1B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QAExB,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,+BAA+B;QAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACS,wCAAc,GAAxB;QACE,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IACO,iCAAO,GAAf,UAAgB,IAAY;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAC;SAC5C;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACO,8CAAoB,GAA5B;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACpF,UAAU,CAAC,OAAO,CAAC,UAAC,QAAa,EAAE,aAAa;YAC9C,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;gBACzC,IAAI,CAAC,aAAa,GAAG,aAAa,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBACvD,IAAI,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACxE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACO,sCAAY,GAApB;QAAA,iBASC;QARC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE;YACvB,IAAI,MAAM,GAAG,KAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,MAAM,KAAK,CAAC,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;YAC7C,IAAI,MAAM,GAAG,KAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,MAAM,KAAK,CAAC,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;YAC7C,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IACD;;;;OAIG;IACI,4CAAkB,GAAzB,UAA0B,kBAAiC,EAAE,oBAA6B;QACxF,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAM,iBAAiB,GAAG,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,QAAQ,GAAG,0DAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,EAAE;gBACb,QAAQ,GAAG,sDAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACzC;YACD,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,KAAK,GAAG,sEAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;YACvD,IAAM,IAAI,GAAyB;gBACjC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,OAAO,GAAG,IAAI;gBACxB,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1C,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IACO,+CAAqB,GAA7B;QACE,IAAI,IAAI,GAAG,kEAAsB,CAAC,QAAQ,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE;gBAC/B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aAC7C;SACF;IACH,CAAC;IACO,oDAA0B,GAAlC;QACE,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACrC;IACH,CAAC;IACO,2CAAiB,GAAzB;QACE,IAAI,aAAa,GAAG,SAAS,CAAC,CAAC,4BAA4B;QAC3D,IAAI,CAAC,aAAa,EAAE;YAClB,aAAa,GAAG,+DAAmB,CAAC;SACrC;QACD,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC;QAC9B,IAAI,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,CAAC;IACO,yCAAe,GAAvB,UAAwB,IAAS;QAC/B,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK;YAAE,OAAO;QACzC,IAAM,QAAQ,GAAW,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC;QACzF,IAAI,KAAK,GAAW,sEAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE;YAChC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACpB;QACD,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;SACnB;QACD,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACrB,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAC9B;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,IAAM,IAAI,GAA8B,IAAI,kDAAM,CAAM;YACtD,EAAE,EAAE,IAAI,CAAC,IAAI;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,IAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,CAAC,cAAc,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;SACtE;aAAM;YACL,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrG,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;aACvC;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC3B;SACF;IACH,CAAC;IACO,yCAAe,GAAvB,UAAwB,QAAa;QACnC,IAAI,IAAI,GAAG,IAAI,sDAAU,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,eAAe,GAAG,eAAe,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,eAAe,EAAE;YACnB,KAAK,IAAI,GAAG,IAAI,eAAe,EAAE;gBAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;aAClC;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACO,0CAAgB,GAAxB,UAAyB,kBAAiC;QACxD,IAAM,QAAQ,GAAa,0DAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjE,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,IAAI,CAAC;YACvD,kBAAkB,GAAG,QAAQ,CAAC;QAChC,IAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrD,IAAM,MAAI,GAAW,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,kBAAkB,CAAC,OAAO,CAAC,MAAI,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAI,CAAC,GAAG,CAAC,CAAC;gBACtE,SAAS,CAAC,IAAI,CAAC,MAAI,CAAC,CAAC;SACxB;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClD,IAAI,IAAI,GAAW,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACzC,IACE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC7C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE3B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,iCAAO,GAAd,cAAmB,CAAC;IAvqBb,2BAAW,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC7D,+BAAe,GAAG,cAAc,CAAC;IACjC,iCAAiB,GAAG;QACzB,qBAAqB,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC;QAC9H,mBAAmB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC;QACxD,yBAAyB,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC;QACpD,qBAAqB,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,eAAe,CAAC;QACpE,mBAAmB,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC;KACrE;IA6BkC;QAAlC,4DAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;oEAA0C;IAS3D;QAAhB,iEAAa,EAAE;uDAA4C;IAa5D;QANC,4DAAQ,CAAC;YACR,YAAY,EAAE,EAAE;YAChB,KAAK,EAAE,UAAC,GAAW,EAAE,MAAuB;gBAC1C,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;SACF,CAAC;2DACqB;IACY;QAAlC,4DAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;0DAAwB;IACxB;QAAjC,4DAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;kEAAgC;IAmB9D;QAbF,4DAAQ,CAAC;YACR,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,UAAC,GAAY,EAAE,MAAuB;gBAC3C,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,kBAAkB,EAAE;oBACrD,IAAI,GAAG,EAAE;wBACP,MAAM,CAAC,wBAAwB,GAAG,KAAK,CAAC;wBACxC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;qBAC1B;yBAAM;wBACL,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC;wBACvC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;qBAChC;iBACF;YACH,CAAC;SACF,CAAC;sDAAoB;IASV;QAAX,4DAAQ,EAAE;yDAAuB;IA+kBpC,sBAAC;CAAA,CA1qBS,mEAAuB,GA0qBhC;AA3qB2B;;;;;;;;;;;;;ACrF5B;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,UAAU,CAAC,OAAuB,EAAE,EAAU;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;YAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;KAC7C;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,SAAS,6BAA6B,CAAC,QAAoC,EAChF,OAAuB,EACvB,GAA0B;IAC1B,IAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,SAAS,GAAG,oBAAoB,CAAC;IACxC,MAAM,CAAC,QAAQ,GAAG,mBAAmB,CAAC;IACtC,MAAM,CAAC,QAAQ,GAAG,iDAAiD,CAAC;IACpE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,MAAM,CAAC,MAAM,GAAG;QACd,GAAG,CAAC,wBAAwB,EAAE,CAAC;IACjC,CAAC,CAAC;IACF,IAAM,UAAU,GAAG,cAAQ,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACvH,QAAQ,CAAC,sCAAsC,CAAC,cAAc,GAAG,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACrF,UAAU,EAAE,CAAC;AACf,CAAC;AAEM,SAAS,6BAA6B,CAAC,QAAoC,EAAE,OAAuB,EAAE,GAA0B;IACrI,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACjD,IAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,GAAG,GAAG,iDAAiD,CAAC;AACjE,CAAC;AACM,SAAS,wBAAwB,CACtC,QAAoC,EACpC,OAAuB,EACvB,GAA0B;IAE1B,IAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,SAAS,GAAG,oBAAoB,CAAC;IACxC,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC;IAChC,MAAM,CAAC,QAAQ,GAAG,6CAA6C,CAAC;IAChE,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC;IACtC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,MAAM,CAAC,MAAM,GAAG;QACd,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;ACtDD,uC;;;;;;;;;;;;;;;;;;;;;;;;;ACAA,uC;;;;;;;;;;;;ACAA;AAAA;AAAA;IAeE,uBAAoB,SAAsB,EAAE,OAAe;QAA3D,iBAGC;QAHmB,cAAS,GAAT,SAAS,CAAa;QANlC,WAAM,GAAG;YACf,WAAW,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE;YACpF,SAAS,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE;YAChF,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE;SACtF;QAoDO,wBAAmB,GAAG,UAAC,CAAM;YACnC,IAAG,CAAC,MAAM;gBAAE,OAAO;YACnB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACjE,KAAI,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC;YAC9B,KAAI,CAAC,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;YAC/B,MAAM,CAAC,gBAAgB,CAAC,KAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,KAAI,CAAC,MAAM,CAAC,CAAC;YACtE,MAAM,CAAC,gBAAgB,CAAC,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,KAAI,CAAC,UAAU,CAAC,CAAC;QAC1E,CAAC,CAAC;QACM,WAAM,GAAG,UAAC,CAAM;YACtB,IAAI,KAAK,GAAG,KAAI,CAAC,aAAa,CAAC;YAC/B,IAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,GAAG,KAAI,CAAC,cAAc,CAAC;YAC5D,IAAI,KAAI,CAAC,cAAc,IAAI,KAAI,CAAC,WAAW,EAAE;gBAC3C,KAAK,IAAI,qBAAqB,CAAC;aAChC;iBAAM;gBACL,KAAK,IAAI,qBAAqB,CAAC;aAChC;YACD,IAAI,KAAK,GAAG,KAAI,CAAC,QAAQ,EAAE;gBACzB,KAAK,GAAG,KAAI,CAAC,QAAQ,CAAC;aACvB;iBAAM,IAAI,KAAK,GAAG,KAAI,CAAC,QAAQ,EAAE;gBAChC,KAAK,GAAG,KAAI,CAAC,QAAQ,CAAC;aACvB;YACD,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;QAC5C,CAAC,CAAC;QACM,eAAU,GAAG,UAAC,CAAM;YAC1B,IAAG,CAAC,MAAM;gBAAE,OAAO;YACnB,MAAM,CAAC,mBAAmB,CAAC,KAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,KAAI,CAAC,MAAM,CAAC,CAAC;YACzE,MAAM,CAAC,mBAAmB,CAAC,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,KAAI,CAAC,UAAU,CAAC,CAAC;QAC7E,CAAC,CAAC;QA7EA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACM,kCAAU,GAAjB,UAAkB,MAAc;QAC9B,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,QAAQ,CAAC,OAAO,CAAC,aAAG,IAAI,UAAG,CAAC,IAAI,EAAE,EAAV,CAAU,CAAC,CAAC;QACpC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAG,IAAI,QAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC;QACzC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAQ;YAC/B,IAAI,QAAQ,IAAI,GAAG;gBAAE,kBAAkB,GAAG,IAAI,CAAC;YAC/C,IAAI,QAAQ,IAAI,GAAG;gBAAE,kBAAkB,GAAG,IAAI,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1E,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,CAAC;IACO,qCAAa,GAArB,UAAsB,OAAoB,EAAE,KAAa;QACvD,IAAG,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QACrB,OAAO,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAChG,CAAC;IACO,wCAAgB,GAAxB,UAAyB,SAAiB;QACxC,IAAI,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvC,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;QAC7B,IAAI,WAAW,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,EAAE;YAChB,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACtC,WAAW,GAAG,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC;SAClD;QACD,EAAE,GAAG,IAAI,CAAC;QACV,OAAO,WAAW,CAAC;IACrB,CAAC;IACO,sCAAc,GAAtB;QACE,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;YAClC,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE;gBACxC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;aAC9B;iBACI,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE;gBAC5C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;aAC5B;iBACI,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;gBAC3C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;aAC5B;SACF;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACO,qCAAa,GAArB,UAAsB,SAAiB;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACvD,CAAC;IA8BO,4BAAI,GAAZ,UAAa,SAAsB;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,8BAA8B,CAAC,CAAC;QAC9E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,8BAA8B,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3D,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IACO,6CAAqB,GAA7B,UAA8B,SAAiB;QAC7C,IAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACpF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,+BAAO,GAAP;QACE,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAE7B,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IACH,oBAAC;AAAD,CAAC;;;;;;;;;;;;;;ACtHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkE;AACnB;AAE/C,SAAS,oBAAoB,CAAC,GAAW;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;YAClC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;SACpB;aAAM;YACL,IAAI,CAAC,CAAC,GAAG;gBAAE,OAAO,GAAG,CAAC;SACvB;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE;YAAE,MAAM;KAC7B;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,IAAM,aAAa,GAAG;IACpB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;CACV,CAAC;AACF,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,eAAe,CAAC,MAAa,EAAE,MAAW;IACjD,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,SAAS;QACzB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;KAClD;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AACM,SAAS,gBAAgB,CAAC,MAAc,EAAE,OAAoB;IACnE,IAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,IAAe,IAAK,WAAI,CAAC,KAAK,EAAV,CAAU,CAAC,CAAC;IAC5D,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AACM,SAAS,eAAe,CAAC,OAAoB;IAClD,IAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAC1B,IAAG,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvB,IAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtF,IAAM,MAAM,GAAG,EAAE,CAAC;IAClB,OAAO,CAAC,OAAO,CAAC,cAAI,IAAM,IAAG,IAAI,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,UAAC,IAAe,IAAK,WAAI,CAAC,IAAI,EAAT,CAAS,CAAC,CAAC;IAC5C,IAAM,SAAS,GAAG,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC;AACM,SAAS,YAAY,CAAC,MAAc,EAAE,MAAa;IACxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QACnB,IAAI,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,IAAI,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,SAAS,CAAC;IACd,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,SAAS;QACzB,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,MAAM,EAAE;YACZ,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACtC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM;SACP;KACF;IACD,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE;QACpB,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,QAAQ,GAAG,SAAS,KAAK,GAAG,CAAC;QACjC,IAAI,QAAQ,CAAC;QACb,GAAG;YACD,IAAI,QAAQ,EAAE;gBACZ,QAAQ,GAAG,EAAE,GAAG,CAAC;aAClB;iBACI;gBACH,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAChC,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;oBACpC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;iBACvB;gBACD,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;aAChG;SACF,QAAQ,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;QAC5C,OAAO,QAAQ,CAAC;KACjB;IACD,IAAG,CAAC,MAAM,EAAE;QACV,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACpC;IACD,OAAO,MAAM,GAAG,CAAC,CAAC;AACpB,CAAC;AAEM,SAAS,cAAc,CAAC,SAAiB,EAAE,UAAuB;IACvE,IAAI,MAAM,GAAG,UAAU,CAAC;IACxB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACxD,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;KAC/B;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,SAAS,iBAAiB,CAAC,gBAA+B;IAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAChD,IAAI,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,sBAAsB,KAAK,UAAU,EAAE;YACpE,IAAI,QAAQ,GAAkC,CAC5C,gBAAgB,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAC5D,CAAC;YACF,IACE,QAAQ,CAAC,MAAM,KAAK,CAAC;gBACrB,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAC7D;gBACA,QAAQ,GAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE;oBACzC,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;oBACvC,MAAM;iBACP;aACF;SACF;KACF;AACH,CAAC;AAEM,SAAS,sBAAsB,CAAC,QAAa;IAClD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,UAAU;YACvE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;KACtB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uFAAuF;AAChF,SAAS,2BAA2B,CAAC,aAAa;IACvD,mCAAmC;IACnC,sCAAsC;IAEtC,IAAI,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IACpC,IAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;QAC1B,OAAO,OAAO,CAAC,UAAU,CAAC;KAC3B;IAED,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE;QACtC,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC;YAAE,SAAS;QACrC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACxB;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,sCAAsC;AACtC,mEAAmE;AACnE,oCAAoC;AACpC,OAAO;AACP,KAAK;AAEL,0DAA0D;AAC1D,oCAAoC;AACpC,yCAAyC;AACzC,wCAAwC;AACxC,yBAAyB;AACzB,gCAAgC;AAChC,wBAAwB;AACxB,QAAQ;AACR,OAAO;AACP,IAAI;AAEJ,sCAAsC;AACtC,mEAAmE;AACnE,kDAAkD;AAClD,OAAO;AACP,KAAK;AAEL,yCAAyC;AACzC,8EAA8E;AAC9E,kCAAkC;AAClC,wDAAwD;AACxD,SAAS;AACT,OAAO;AACP,KAAK;AAEL,8CAA8C;AAC9C,8EAA8E;AAC9E,sCAAsC;AACtC,mEAAmE;AACnE,OAAO;AACP,KAAK;AAEE,SAAS,cAAc,CAAC,GAAQ,EAAE,YAAoB;IAC3D,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE;QAC9C,IAAM,QAAQ,GAAG,sDAAU,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;QACtE,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC;KACrB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,SAAS,iBAAiB,CAAC,GAAQ,EAAE,YAAoB;IAC9D,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE;QAC9C,IAAM,QAAQ,GAAG,sDAAU,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;QACtE,MAAM,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC;KACxC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAEM,SAAS,aAAa,CAAC,CAAa,EAAE,OAAoB,EAAE,OAAW;IAAX,qCAAW;IAC5E,IAAM,iBAAiB,GAAG,0BAA0B,CAAC;IACrD,IAAM,IAAI,GAAG,aAAa,CAAC;IAC3B,IAAM,SAAS,GAAG,mBAAmB,CAAC;IAEtC,SAAS,QAAQ,CAAC,SAAS,EAAE,UAAiB;QAAjB,8CAAiB;QAC5C,IAAM,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,UAAU,EAAE;YACd,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE;gBACjC,OAAO;aACR;SACF;QACD,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;YAChC,OAAO,CAAC,SAAS,IAAI,GAAG,GAAG,SAAS,CAAC;SACtC;IACH,CAAC;IAED,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;QACnD,IAAI,OAAO,EAAE;YACX,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,UAAU,CAAC;gBACT,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5B,CAAC,EAAE,OAAO,CAAC,CAAC;SACb;aACI;YACH,QAAQ,CAAC,IAAI,CAAC,CAAC;SAChB;QACD,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;KAC7B;SAAM;QACL,OAAO,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAChF,OAAO,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;KAC3E;AACH,CAAC;AAEM,SAAS,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC;AAEM,SAAS,MAAM,CAAC,OAAY;IACjC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,IAAI,KAAK,EAAE,SAAS,CAAC;IACrB,IAAI,MAAM,CAAC,YAAY,IAAI,QAAQ,CAAC,WAAW,EAAE;QAC/C,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAClC,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC/B,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAClC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5B,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC3B;SAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;QACpE,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3C,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,EAAE,CAAC;KAChB;AACH,CAAC;AACM,SAAS,UAAU,CAAC,GAAQ,EAAE,GAAQ;IAC3C,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;QACnB,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,MAAM,GAAG,EAAE,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACnC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;KACnB;AACH,CAAC;AACM,SAAS,cAAc,CAAC,IAAS,EAAE,MAAW;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,YAAY,MAAM,EAAE;QAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;KACvB;SAAM;QACL,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KAC1B;AACH,CAAC;AAEM,SAAS,sBAAsB,CAAC,WAAgB,EAAE,YAAoB;IAC3E,cAAc,CAAC,WAAW,EAAE,wDAAY,CAAC,QAAQ,CAAC,CAAC;IACnD,cAAc,CAAC,WAAW,EAAE,wDAAY,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1D,CAAC;AAEM,SAAS,qBAAqB,CAAC,IAAY;IAChD,OAAO,0DAAQ,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,0DAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;AACzE,CAAC;AAEM,SAAS,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IACrB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,UAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QAC3C,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AACM,SAAS,kBAAkB;IAAC,cAAuB;SAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;QAAvB,yBAAuB;;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAC,GAAG,IAAK,UAAG,KAAK,IAAI,EAAZ,CAAY,CAAC,CAAC;AAC3C,CAAC;;;;;;;;;;;;AChTD,yD","file":"survey-creator-core.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"survey-core\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"SurveyCreatorCore\", [\"survey-core\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SurveyCreatorCore\"] = factory(require(\"survey-core\"));\n\telse\n\t\troot[\"SurveyCreatorCore\"] = factory(root[\"Survey\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_survey_core__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/entries/index.ts\");\n","/* @license\nPapa Parse\nv5.4.0\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&\"undefined\"!=typeof exports?module.exports=t():e.Papa=t()}(this,function s(){\"use strict\";var f=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==f?f:{};var n=!f.document&&!!f.postMessage,o=f.IS_PAPA_WORKER||!1,a={},u=0,b={parse:function(e,t){var r=(t=t||{}).dynamicTyping||!1;J(r)&&(t.dynamicTypingFunction=r,r={});if(t.dynamicTyping=r,t.transform=!!J(t.transform)&&t.transform,t.worker&&b.WORKERS_SUPPORTED){var i=function(){if(!b.WORKERS_SUPPORTED)return!1;var e=(r=f.URL||f.webkitURL||null,i=s.toString(),b.BLOB_URL||(b.BLOB_URL=r.createObjectURL(new Blob([\"var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; \",\"(\",i,\")();\"],{type:\"text/javascript\"})))),t=new f.Worker(e);var r,i;return t.onmessage=_,t.id=u++,a[t.id]=t}();return i.userStep=t.step,i.userChunk=t.chunk,i.userComplete=t.complete,i.userError=t.error,t.step=J(t.step),t.chunk=J(t.chunk),t.complete=J(t.complete),t.error=J(t.error),delete t.worker,void i.postMessage({input:e,config:t,workerId:i.id})}var n=null;b.NODE_STREAM_INPUT,\"string\"==typeof e?(e=function(e){if(65279===e.charCodeAt(0))return e.slice(1);return e}(e),n=t.download?new l(t):new p(t)):!0===e.readable&&J(e.read)&&J(e.on)?n=new g(t):(f.File&&e instanceof File||e instanceof Object)&&(n=new c(t));return n.stream(e)},unparse:function(e,t){var n=!1,_=!0,m=\",\",y=\"\\r\\n\",s='\"',a=s+s,r=!1,i=null,o=!1;!function(){if(\"object\"!=typeof t)return;\"string\"!=typeof t.delimiter||b.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(m=t.delimiter);(\"boolean\"==typeof t.quotes||\"function\"==typeof t.quotes||Array.isArray(t.quotes))&&(n=t.quotes);\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(r=t.skipEmptyLines);\"string\"==typeof t.newline&&(y=t.newline);\"string\"==typeof t.quoteChar&&(s=t.quoteChar);\"boolean\"==typeof t.header&&(_=t.header);if(Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");i=t.columns}void 0!==t.escapeChar&&(a=t.escapeChar+s);(\"boolean\"==typeof t.escapeFormulae||t.escapeFormulae instanceof RegExp)&&(o=t.escapeFormulae instanceof RegExp?t.escapeFormulae:/^[=+\\-@\\t\\r].*$/)}();var u=new RegExp(Q(s),\"g\");\"string\"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return h(null,e,r);if(\"object\"==typeof e[0])return h(i||Object.keys(e[0]),e,r)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||i),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:\"object\"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),h(e.fields||[],e.data||[],r);throw new Error(\"Unable to serialize unrecognized input\");function h(e,t,r){var i=\"\";\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t));var n=Array.isArray(e)&&0<e.length,s=!Array.isArray(t[0]);if(n&&_){for(var a=0;a<e.length;a++)0<a&&(i+=m),i+=v(e[a],a);0<t.length&&(i+=y)}for(var o=0;o<t.length;o++){var u=n?e.length:t[o].length,h=!1,f=n?0===Object.keys(t[o]).length:0===t[o].length;if(r&&!n&&(h=\"greedy\"===r?\"\"===t[o].join(\"\").trim():1===t[o].length&&0===t[o][0].length),\"greedy\"===r&&n){for(var d=[],l=0;l<u;l++){var c=s?e[l]:l;d.push(t[o][c])}h=\"\"===d.join(\"\").trim()}if(!h){for(var p=0;p<u;p++){0<p&&!f&&(i+=m);var g=n&&s?e[p]:p;i+=v(t[o][g],p)}o<t.length-1&&(!r||0<u&&!f)&&(i+=y)}}return i}function v(e,t){if(null==e)return\"\";if(e.constructor===Date)return JSON.stringify(e).slice(1,25);var r=!1;o&&\"string\"==typeof e&&o.test(e)&&(e=\"'\"+e,r=!0);var i=e.toString().replace(u,a);return(r=r||!0===n||\"function\"==typeof n&&n(e,t)||Array.isArray(n)&&n[t]||function(e,t){for(var r=0;r<t.length;r++)if(-1<e.indexOf(t[r]))return!0;return!1}(i,b.BAD_DELIMITERS)||-1<i.indexOf(m)||\" \"===i.charAt(0)||\" \"===i.charAt(i.length-1))?s+i+s:i}}};if(b.RECORD_SEP=String.fromCharCode(30),b.UNIT_SEP=String.fromCharCode(31),b.BYTE_ORDER_MARK=\"\\ufeff\",b.BAD_DELIMITERS=[\"\\r\",\"\\n\",'\"',b.BYTE_ORDER_MARK],b.WORKERS_SUPPORTED=!n&&!!f.Worker,b.NODE_STREAM_INPUT=1,b.LocalChunkSize=10485760,b.RemoteChunkSize=5242880,b.DefaultDelimiter=\",\",b.Parser=E,b.ParserHandle=r,b.NetworkStreamer=l,b.FileStreamer=c,b.StringStreamer=p,b.ReadableStreamStreamer=g,f.jQuery){var d=f.jQuery;d.fn.parse=function(o){var r=o.config||{},u=[];return this.each(function(e){if(!(\"INPUT\"===d(this).prop(\"tagName\").toUpperCase()&&\"file\"===d(this).attr(\"type\").toLowerCase()&&f.FileReader)||!this.files||0===this.files.length)return!0;for(var t=0;t<this.files.length;t++)u.push({file:this.files[t],inputElem:this,instanceConfig:d.extend({},r)})}),e(),this;function e(){if(0!==u.length){var e,t,r,i,n=u[0];if(J(o.before)){var s=o.before(n.file,n.inputElem);if(\"object\"==typeof s){if(\"abort\"===s.action)return e=\"AbortError\",t=n.file,r=n.inputElem,i=s.reason,void(J(o.error)&&o.error({name:e},t,r,i));if(\"skip\"===s.action)return void h();\"object\"==typeof s.config&&(n.instanceConfig=d.extend(n.instanceConfig,s.config))}else if(\"skip\"===s)return void h()}var a=n.instanceConfig.complete;n.instanceConfig.complete=function(e){J(a)&&a(e,n.file,n.inputElem),h()},b.parse(n.file,n.instanceConfig)}else J(o.complete)&&o.complete()}function h(){u.splice(0,1),e()}}}function h(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=\"\",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=w(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null);this._handle=new r(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,t){if(this.isFirstChunk&&J(this._config.beforeFirstChunk)){var r=this._config.beforeFirstChunk(e);void 0!==r&&(e=r)}this.isFirstChunk=!1,this._halted=!1;var i=this._partialLine+e;this._partialLine=\"\";var n=this._handle.parse(i,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var s=n.meta.cursor;this._finished||(this._partialLine=i.substring(s-this._baseIndex),this._baseIndex=s),n&&n.data&&(this._rowCount+=n.data.length);var a=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(o)f.postMessage({results:n,workerId:b.WORKER_ID,finished:a});else if(J(this._config.chunk)&&!t){if(this._config.chunk(n,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);n=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(n.data),this._completeResults.errors=this._completeResults.errors.concat(n.errors),this._completeResults.meta=n.meta),this._completed||!a||!J(this._config.complete)||n&&n.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),a||n&&n.meta.paused||this._nextChunk(),n}this._halted=!0},this._sendError=function(e){J(this._config.error)?this._config.error(e):o&&this._config.error&&f.postMessage({workerId:b.WORKER_ID,error:e,finished:!1})}}function l(e){var i;(e=e||{}).chunkSize||(e.chunkSize=b.RemoteChunkSize),h.call(this,e),this._nextChunk=n?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(i=new XMLHttpRequest,this._config.withCredentials&&(i.withCredentials=this._config.withCredentials),n||(i.onload=v(this._chunkLoaded,this),i.onerror=v(this._chunkError,this)),i.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!n),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var t in e)i.setRequestHeader(t,e[t])}if(this._config.chunkSize){var r=this._start+this._config.chunkSize-1;i.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+r)}try{i.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}n&&0===i.status&&this._chunkError()}},this._chunkLoaded=function(){4===i.readyState&&(i.status<200||400<=i.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:i.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(e){var t=e.getResponseHeader(\"Content-Range\");if(null===t)return-1;return parseInt(t.substring(t.lastIndexOf(\"/\")+1))}(i),this.parseChunk(i.responseText)))},this._chunkError=function(e){var t=i.statusText||e;this._sendError(new Error(t))}}function c(e){var i,n;(e=e||{}).chunkSize||(e.chunkSize=b.LocalChunkSize),h.call(this,e);var s=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,s?((i=new FileReader).onload=v(this._chunkLoaded,this),i.onerror=v(this._chunkError,this)):i=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input;if(this._config.chunkSize){var t=Math.min(this._start+this._config.chunkSize,this._input.size);e=n.call(e,this._start,t)}var r=i.readAsText(e,this._config.encoding);s||this._chunkLoaded({target:{result:r}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(i.error)}}function p(e){var r;h.call(this,e=e||{}),this.stream=function(e){return r=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e,t=this._config.chunkSize;return t?(e=r.substring(0,t),r=r.substring(t)):(e=r,r=\"\"),this._finished=!r,this.parseChunk(e)}}}function g(e){h.call(this,e=e||{});var t=[],r=!0,i=!1;this.pause=function(){h.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){h.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){i&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):r=!0},this._streamData=v(function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),r&&(r=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=v(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=v(function(){this._streamCleanUp(),i=!0,this._streamData(\"\")},this),this._streamCleanUp=v(function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)},this)}function r(m){var a,o,u,i=Math.pow(2,53),n=-i,s=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/,h=/^((\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)))$/,t=this,r=0,f=0,d=!1,e=!1,l=[],c={data:[],errors:[],meta:{}};if(J(m.step)){var p=m.step;m.step=function(e){if(c=e,_())g();else{if(g(),0===c.data.length)return;r+=e.data.length,m.preview&&r>m.preview?o.abort():(c.data=c.data[0],p(c,t))}}}function y(e){return\"greedy\"===m.skipEmptyLines?\"\"===e.join(\"\").trim():1===e.length&&0===e[0].length}function g(){return c&&u&&(k(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+b.DefaultDelimiter+\"'\"),u=!1),m.skipEmptyLines&&(c.data=c.data.filter(function(e){return!y(e)})),_()&&function(){if(!c)return;function e(e,t){J(m.transformHeader)&&(e=m.transformHeader(e,t)),l.push(e)}if(Array.isArray(c.data[0])){for(var t=0;_()&&t<c.data.length;t++)c.data[t].forEach(e);c.data.splice(0,1)}else c.data.forEach(e)}(),function(){if(!c||!m.header&&!m.dynamicTyping&&!m.transform)return c;function e(e,t){var r,i=m.header?{}:[];for(r=0;r<e.length;r++){var n=r,s=e[r];m.header&&(n=r>=l.length?\"__parsed_extra\":l[r]),m.transform&&(s=m.transform(s,n)),s=v(n,s),\"__parsed_extra\"===n?(i[n]=i[n]||[],i[n].push(s)):i[n]=s}return m.header&&(r>l.length?k(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+l.length+\" fields but parsed \"+r,f+t):r<l.length&&k(\"FieldMismatch\",\"TooFewFields\",\"Too few fields: expected \"+l.length+\" fields but parsed \"+r,f+t)),i}var t=1;!c.data.length||Array.isArray(c.data[0])?(c.data=c.data.map(e),t=c.data.length):c.data=e(c.data,0);m.header&&c.meta&&(c.meta.fields=l);return f+=t,c}()}function _(){return m.header&&0===l.length}function v(e,t){return r=e,m.dynamicTypingFunction&&void 0===m.dynamicTyping[r]&&(m.dynamicTyping[r]=m.dynamicTypingFunction(r)),!0===(m.dynamicTyping[r]||m.dynamicTyping)?\"true\"===t||\"TRUE\"===t||\"false\"!==t&&\"FALSE\"!==t&&(function(e){if(s.test(e)){var t=parseFloat(e);if(n<t&&t<i)return!0}return!1}(t)?parseFloat(t):h.test(t)?new Date(t):\"\"===t?null:t):t;var r}function k(e,t,r,i){var n={type:e,code:t,message:r};void 0!==i&&(n.row=i),c.errors.push(n)}this.parse=function(e,t,r){var i=m.quoteChar||'\"';if(m.newline||(m.newline=function(e,t){e=e.substring(0,1048576);var r=new RegExp(Q(t)+\"([^]*?)\"+Q(t),\"gm\"),i=(e=e.replace(r,\"\")).split(\"\\r\"),n=e.split(\"\\n\"),s=1<n.length&&n[0].length<i[0].length;if(1===i.length||s)return\"\\n\";for(var a=0,o=0;o<i.length;o++)\"\\n\"===i[o][0]&&a++;return a>=i.length/2?\"\\r\\n\":\"\\r\"}(e,i)),u=!1,m.delimiter)J(m.delimiter)&&(m.delimiter=m.delimiter(e),c.meta.delimiter=m.delimiter);else{var n=function(e,t,r,i,n){var s,a,o,u;n=n||[\",\",\"\\t\",\"|\",\";\",b.RECORD_SEP,b.UNIT_SEP];for(var h=0;h<n.length;h++){var f=n[h],d=0,l=0,c=0;o=void 0;for(var p=new E({comments:i,delimiter:f,newline:t,preview:10}).parse(e),g=0;g<p.data.length;g++)if(r&&y(p.data[g]))c++;else{var _=p.data[g].length;l+=_,void 0!==o?0<_&&(d+=Math.abs(_-o),o=_):o=_}0<p.data.length&&(l/=p.data.length-c),(void 0===a||d<=a)&&(void 0===u||u<l)&&1.99<l&&(a=d,s=f,u=l)}return{successful:!!(m.delimiter=s),bestDelimiter:s}}(e,m.newline,m.skipEmptyLines,m.comments,m.delimitersToGuess);n.successful?m.delimiter=n.bestDelimiter:(u=!0,m.delimiter=b.DefaultDelimiter),c.meta.delimiter=m.delimiter}var s=w(m);return m.preview&&m.header&&s.preview++,a=e,o=new E(s),c=o.parse(a,t,r),g(),d?{meta:{paused:!0}}:c||{meta:{paused:!1}}},this.paused=function(){return d},this.pause=function(){d=!0,o.abort(),a=J(m.chunk)?\"\":a.substring(o.getCharIndex())},this.resume=function(){t.streamer._halted?(d=!1,t.streamer.parseChunk(a,!0)):setTimeout(t.resume,3)},this.aborted=function(){return e},this.abort=function(){e=!0,o.abort(),c.meta.aborted=!0,J(m.complete)&&m.complete(c),a=\"\"}}function Q(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function E(j){var z,M=(j=j||{}).delimiter,P=j.newline,U=j.comments,q=j.step,N=j.preview,B=j.fastMode,K=z=void 0===j.quoteChar||null===j.quoteChar?'\"':j.quoteChar;if(void 0!==j.escapeChar&&(K=j.escapeChar),(\"string\"!=typeof M||-1<b.BAD_DELIMITERS.indexOf(M))&&(M=\",\"),U===M)throw new Error(\"Comment character same as delimiter\");!0===U?U=\"#\":(\"string\"!=typeof U||-1<b.BAD_DELIMITERS.indexOf(U))&&(U=!1),\"\\n\"!==P&&\"\\r\"!==P&&\"\\r\\n\"!==P&&(P=\"\\n\");var W=0,H=!1;this.parse=function(i,t,r){if(\"string\"!=typeof i)throw new Error(\"Input must be a string\");var n=i.length,e=M.length,s=P.length,a=U.length,o=J(q),u=[],h=[],f=[],d=W=0;if(!i)return L();if(j.header){var l=i.split(P)[0].split(M),c=[],p={},g=!1;for(var _ in l){var m=l[_];J(j.transformHeader)&&(m=j.transformHeader(m,_));var y=m,v=p[m]||0;0<v&&(g=!0,y=m+\"_\"+v),p[m]=v+1,c.push(y)}if(g){var k=i.split(P);k[0]=c.join(M),i=k.join(P)}}if(B||!1!==B&&-1===i.indexOf(z)){for(var b=i.split(P),E=0;E<b.length;E++){if(f=b[E],W+=f.length,E!==b.length-1)W+=P.length;else if(r)return L();if(!U||f.substring(0,a)!==U){if(o){if(u=[],I(f.split(M)),F(),H)return L()}else I(f.split(M));if(N&&N<=E)return u=u.slice(0,N),L(!0)}}return L()}for(var w=i.indexOf(M,W),R=i.indexOf(P,W),C=new RegExp(Q(K)+Q(z),\"g\"),S=i.indexOf(z,W);;)if(i[W]!==z)if(U&&0===f.length&&i.substring(W,W+a)===U){if(-1===R)return L();W=R+s,R=i.indexOf(P,W),w=i.indexOf(M,W)}else if(-1!==w&&(w<R||-1===R))f.push(i.substring(W,w)),W=w+e,w=i.indexOf(M,W);else{if(-1===R)break;if(f.push(i.substring(W,R)),D(R+s),o&&(F(),H))return L();if(N&&u.length>=N)return L(!0)}else for(S=W,W++;;){if(-1===(S=i.indexOf(z,S+1)))return r||h.push({type:\"Quotes\",code:\"MissingQuotes\",message:\"Quoted field unterminated\",row:u.length,index:W}),T();if(S===n-1)return T(i.substring(W,S).replace(C,z));if(z!==K||i[S+1]!==K){if(z===K||0===S||i[S-1]!==K){-1!==w&&w<S+1&&(w=i.indexOf(M,S+1)),-1!==R&&R<S+1&&(R=i.indexOf(P,S+1));var O=A(-1===R?w:Math.min(w,R));if(i.substr(S+1+O,e)===M){f.push(i.substring(W,S).replace(C,z)),i[W=S+1+O+e]!==z&&(S=i.indexOf(z,W)),w=i.indexOf(M,W),R=i.indexOf(P,W);break}var x=A(R);if(i.substring(S+1+x,S+1+x+s)===P){if(f.push(i.substring(W,S).replace(C,z)),D(S+1+x+s),w=i.indexOf(M,W),S=i.indexOf(z,W),o&&(F(),H))return L();if(N&&u.length>=N)return L(!0);break}h.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:u.length,index:W}),S++}}else S++}return T();function I(e){u.push(e),d=W}function A(e){var t=0;if(-1!==e){var r=i.substring(S+1,e);r&&\"\"===r.trim()&&(t=r.length)}return t}function T(e){return r||(void 0===e&&(e=i.substring(W)),f.push(e),W=n,I(f),o&&F()),L()}function D(e){W=e,I(f),f=[],R=i.indexOf(P,W)}function L(e){return{data:u,errors:h,meta:{delimiter:M,linebreak:P,aborted:H,truncated:!!e,cursor:d+(t||0)}}}function F(){q(L()),u=[],h=[]}},this.abort=function(){H=!0},this.getCharIndex=function(){return W}}function _(e){var t=e.data,r=a[t.workerId],i=!1;if(t.error)r.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){i=!0,m(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:y,resume:y};if(J(r.userStep)){for(var s=0;s<t.results.data.length&&(r.userStep({data:t.results.data[s],errors:t.results.errors,meta:t.results.meta},n),!i);s++);delete t.results}else J(r.userChunk)&&(r.userChunk(t.results,n,t.file),delete t.results)}t.finished&&!i&&m(t.workerId,t.results)}function m(e,t){var r=a[e];J(r.userComplete)&&r.userComplete(t),r.terminate(),delete a[e]}function y(){throw new Error(\"Not implemented.\")}function w(e){if(\"object\"!=typeof e||null===e)return e;var t=Array.isArray(e)?[]:{};for(var r in e)t[r]=w(e[r]);return t}function v(e,t){return function(){e.apply(t,arguments)}}function J(e){return\"function\"==typeof e}return o&&(f.onmessage=function(e){var t=e.data;void 0===b.WORKER_ID&&t&&(b.WORKER_ID=t.workerId);if(\"string\"==typeof t.input)f.postMessage({workerId:b.WORKER_ID,results:b.parse(t.input,t.config),finished:!0});else if(f.File&&t.input instanceof File||t.input instanceof Object){var r=b.parse(t.input,t.config);r&&f.postMessage({workerId:b.WORKER_ID,results:r,finished:!0})}}),(l.prototype=Object.create(h.prototype)).constructor=l,(c.prototype=Object.create(h.prototype)).constructor=c,(p.prototype=Object.create(p.prototype)).constructor=p,(g.prototype=Object.create(h.prototype)).constructor=g,b});","import {\n Base,\n AdaptiveActionContainer,\n Action,\n SurveyModel,\n SurveyElement,\n property\n} from \"survey-core\";\nimport { CreatorBase } from \"../creator-base\";\nimport { settings } from \"../creator-settings\";\n\nexport class SurveyElementAdornerBase<T extends SurveyElement = SurveyElement> extends Base {\n public actionContainer: AdaptiveActionContainer;\n @property({ defaultValue: true }) allowDragging: boolean;\n private selectedPropPageFunc: (sender: Base, options: any) => void;\n private sidebarFlyoutModeChangedFunc: (sender: Base, options: any) => void;\n\n constructor(\n public creator: CreatorBase,\n protected surveyElement: T\n ) {\n super();\n this.selectedPropPageFunc = (sender: Base, options: any) => {\n if (options.name === \"isSelectedInDesigner\") {\n this.onElementSelectedChanged(options.newValue);\n }\n };\n this.sidebarFlyoutModeChangedFunc = (sender: Base, options: any) => {\n if (options.name === \"flyoutMode\") {\n this.updateActionsProperties();\n }\n };\n this.actionContainer = new AdaptiveActionContainer();\n var actions: Array<Action> = [];\n this.buildActions(actions);\n this.setSurveyElement(surveyElement);\n if(this.surveyElement) {\n this.creator.sidebar.onPropertyChanged.add(this.sidebarFlyoutModeChangedFunc);\n this.creator.onElementMenuItemsChanged(this.surveyElement, actions);\n this.actionContainer.setItems(actions);\n }\n this.setShowAddQuestionButton(true);\n }\n\n protected detachElement(surveyElement: T): void {\n if(surveyElement) {\n surveyElement.onPropertyChanged.remove(this.selectedPropPageFunc);\n }\n }\n protected attachElement(surveyElement: T): void {\n if(surveyElement) {\n surveyElement.onPropertyChanged.add(this.selectedPropPageFunc);\n }\n }\n protected setSurveyElement(surveyElement: T): void {\n this.detachElement(this.surveyElement);\n this.surveyElement = surveyElement;\n this.attachElement(this.surveyElement);\n this.updateActionsProperties();\n }\n\n protected checkActionProperties(): void {\n if (this.creator.isElementSelected(this.surveyElement)) {\n this.updateActionsProperties();\n }\n }\n\n public dispose() {\n super.dispose();\n this.detachElement(this.surveyElement);\n }\n protected onElementSelectedChanged(isSelected: boolean) {\n if (!isSelected) return;\n this.updateActionsProperties();\n }\n protected updateActionsProperties() {\n this.updateElementAllowOptions(\n this.creator.getElementAllowOperations(this.surveyElement),\n this.isOperationsAllow()\n );\n }\n protected updateElementAllowOptions(options: any, operationsAllow: boolean) {\n this.allowDragging = operationsAllow && options.allowDragging;\n this.updateActionVisibility(\"delete\", operationsAllow && options.allowDelete);\n this.updateActionVisibility(\"duplicate\", operationsAllow && options.allowCopy);\n const settingsVisibility = (options.allowEdit !== undefined) ? (operationsAllow && options.allowEdit) : this.creator.sidebar.flyoutMode;\n this.updateActionVisibility(\"settings\", settingsVisibility);\n this.setShowAddQuestionButton(options.allowEdit !== false);\n }\n protected isOperationsAllow(): boolean {\n return !this.creator.readOnly;\n }\n protected updateActionVisibility(id: string, isVisible: boolean) {\n var action = this.getActionById(id);\n if (!action) return;\n action.visible = isVisible;\n }\n public getActionById(id: string): Action {\n let actions = this.actionContainer.actions;\n for (var i = 0; i < actions.length; i++) {\n if (actions[i].id === id) return actions[i];\n }\n return null;\n }\n protected buildActions(items: Array<Action>) {\n items.push(\n new Action({\n id: \"duplicate\",\n iconName: \"icon-duplicate_16x16\",\n css: \"sv-action-bar-item--secondary\",\n locTitleName: \"survey.duplicate\",\n visibleIndex: 10,\n iconSize: 16,\n action: () => {\n this.duplicate();\n }\n })\n );\n\n items.push(\n new Action({\n id: \"settings\",\n iconName: \"icon-settings_16x16\",\n css: \"sv-action-bar-item--secondary\",\n locTitleName: \"ed.settings\",\n locTooltipName: \"ed.settingsTooltip\",\n visibleIndex: 20,\n iconSize: 16,\n action: () => {\n this.creator.setShowSidebar(true, true);\n this.creator.propertyGrid.getAllQuestions()[0].focus();\n }\n })\n );\n\n items.push(\n new Action({\n id: \"delete\",\n iconName: \"icon-delete_16x16\",\n css: \"sv-action-bar-item--secondary\",\n //needSeparator: items.length > 0,\n locTitleName: \"pe.delete\",\n visibleIndex: 30,\n iconSize: 16,\n action: () => {\n this.creator.deleteElement(this.surveyElement);\n }\n })\n );\n }\n public get allowEdit(): boolean {\n return !!this.creator && !this.creator.readOnly;\n }\n public get showAddQuestionButton(): boolean {\n return this.getPropertyValue(\"showAddQuestionButton\");\n }\n protected setShowAddQuestionButton(val: boolean): void {\n this.setPropertyValue(\"showAddQuestionButton\", val && this.allowEdit && settings.designer.showAddQuestionButton);\n }\n protected duplicate(): void { }\n}\n","// extracted by mini-css-extract-plugin","import { SurveyModel, QuestionFactory, QuestionNonValue, Question, Serializer, property } from \"survey-core\";\n\nexport class QuestionEmbeddedSurveyModel extends QuestionNonValue {\n public embeddedSurveyValue: SurveyModel\n public onEmbeddedSurveyValueChanged = () => { };\n public set embeddedSurvey(val: SurveyModel) {\n this.embeddedSurveyValue = val;\n this.onEmbeddedSurveyValueChanged();\n }\n public get embeddedSurvey(): SurveyModel {\n return this.embeddedSurveyValue;\n }\n constructor(name: string) {\n super(name);\n }\n public getType(): string {\n return \"embeddedsurvey\";\n }\n}\nSerializer.addClass(\n \"embeddedsurvey\",\n [],\n function () {\n return new QuestionEmbeddedSurveyModel(\"\");\n },\n \"nonvalue\"\n);\n\nQuestionFactory.Instance.registerQuestion(\"embeddedsurvey\", (name: string): Question => { return new QuestionEmbeddedSurveyModel(name); });","// extracted by mini-css-extract-plugin","import { Base, CssClassBuilder, property, SurveyModel } from \"survey-core\";\nimport { CreatorBase } from \"../../creator-base\";\nrequire(\"./logo-image.scss\");\n\nexport class LogoImageViewModel extends Base {\n constructor(private creator: CreatorBase, public root: HTMLDivElement) {\n super();\n }\n public get allowEdit() {\n return !this.creator.readOnly;\n }\n public get containerCss() {\n return new CssClassBuilder()\n .append(\"svc-logo-image-container\")\n .append(\"svc-logo-image-container--editable\", this.allowEdit).toString();\n }\n public get survey(): SurveyModel {\n return this.creator.survey;\n }\n private uploadFile(model: LogoImageViewModel, fileInput: HTMLInputElement, files: File[]) {\n model.creator.uploadFiles(files, undefined, (_, link) => {\n model.creator.survey.logo = link;\n fileInput.value = \"\";\n });\n }\n public chooseFile(model: LogoImageViewModel) {\n if(this.allowEdit) {\n const fileInput: HTMLInputElement =\n <HTMLInputElement>model.root.getElementsByClassName(\"svc-choose-file-input\")[0];\n if (fileInput.files.length === 0) {\n model.creator.chooseFiles(fileInput, (files: File[]) => {\n model.uploadFile(model, fileInput, files);\n });\n }\n else model.uploadFile(model, fileInput, [fileInput.files[0]]);\n }\n }\n public remove(model: LogoImageViewModel) {\n model.creator.survey.logo = \"\";\n }\n get chooseLogoPlaceholder() {\n return this.creator.getLocString(\"ed.chooseLogoPlaceholder\");\n }\n}","// extracted by mini-css-extract-plugin","import { CssClassBuilder, ImageItemValue, property, QuestionSelectBase } from \"survey-core\";\nimport { CreatorBase } from \"../creator-base\";\nimport { ItemValueWrapperViewModel } from \"./item-value\";\n\nrequire(\"./image-item-value.scss\");\nexport class ImageItemValueWrapperViewModel extends ItemValueWrapperViewModel {\n private isChoosingNewFile = false;\n @property({ defaultValue: false }) isFileDragging: boolean;\n\n constructor(creator: CreatorBase, public question: QuestionSelectBase, public item: ImageItemValue, public templateData: any, public itemsRoot: HTMLElement) {\n super(creator, question, item);\n }\n\n getRootCss() {\n return new CssClassBuilder()\n .append(\"svc-image-item-value-wrapper\")\n .append(\"svc-image-item-value\")\n .append(\"svc-image-item-value--new\", this.isNew)\n .append(\"svc-image-item-value-wrapper--ghost\", this.isDragDropGhost)\n .append(\"svc-image-item-value--file-dragging\", this.isFileDragging)\n .append(\"svc-image-item-value--single\", this.getIsNewItemSingle()).toString();\n }\n\n public getIsNewItemSingle() {\n return this.isNew && this.question.choices.length === 0;\n }\n\n chooseFile(model: ImageItemValueWrapperViewModel) {\n const fileInput = <HTMLInputElement>model.itemsRoot.getElementsByClassName(\"svc-choose-file-input\")[0];\n model.creator.chooseFiles(fileInput, (files: File[]) => {\n model.creator.uploadFiles(files, model.question, (_, link) => {\n model.item.imageLink = link;\n });\n });\n }\n\n public uploadFiles(files) {\n this.creator.uploadFiles(files, this.question, (_, link) => {\n const itemValue = <ImageItemValue>this.creator.createNewItemValue(this.question);\n itemValue.imageLink = link;\n this.question.choices.push(itemValue);\n if (this.isChoosingNewFile && this.creator) {\n this.creator.onItemValueAddedCallback(this.question, \"choices\", itemValue, this.question.choices);\n this.isChoosingNewFile = false;\n }\n });\n }\n\n chooseNewFile(model: ImageItemValueWrapperViewModel) {\n const fileInput = <HTMLInputElement>model.itemsRoot.getElementsByClassName(\"svc-choose-file-input\")[0];\n model.creator.chooseFiles(fileInput, (files: File[]) => {\n this.isChoosingNewFile = true;\n model.uploadFiles(files);\n });\n }\n onDragOver = (event: any) => {\n this.isFileDragging = true;\n event.dataTransfer.dropEffect = \"copy\";\n event.preventDefault();\n }\n onDrop = (event: any) => {\n this.isFileDragging = false;\n event.preventDefault();\n let input = event.dataTransfer;\n if (!input || !input.files || input.files.length < 1) return;\n let files = [];\n for (let i = 0; i < input.files.length; i++) {\n files.push(input.files[i]);\n }\n this.uploadFiles(files);\n }\n onDragLeave = (event: any) => {\n this.isFileDragging = false;\n }\n}\n\n// chooseFiles() {\n// editor.chooseFiles(fileInput, (files: File[]) => {\n// var itemText = Survey.surveyLocalization.getString(\"choices_Item\");\n// var nextValue = getNextValue(\n// itemText,\n// (model.choices || []).map(c => c.value)\n// );\n// var itemValue = new (<any>Survey)[\"ItemValue\"](\n// nextValue,\n// undefined,\n// \"imageitemvalue\"\n// );\n// itemValue.locOwner = <any>{\n// getLocale: () => {\n// if (!!model[\"getLocale\"]) return model.getLocale();\n// return \"\";\n// },\n// getMarkdownHtml: (text: string) => {\n// return text;\n// },\n// getProcessedText: (text: string) => {\n// return text;\n// }\n// };\n// model.choices = model.choices.concat([itemValue]);\n// itemValue = model.choices[model.choices.length - 1];\n// editor.onQuestionEditorChanged(model);\n// editor.onItemValueAddedCallback(\n// model,\n// \"choices\",\n// itemValue,\n// model.choices\n// );\n\n// var property = Survey.Serializer.findProperty(\n// \"imageitemvalue\",\n// \"imageLink\"\n// );\n// editor.uploadFiles(files, (_, link) => {\n// var options = {\n// propertyName: property.name,\n// obj: itemValue,\n// value: link,\n// newValue: null,\n// doValidation: false\n// };\n// editor.onValueChangingCallback(options);\n// link = options.newValue === null ? options.value : options.newValue;\n// itemValue[\"imageLink\"] = link;\n// editor.onPropertyValueChanged(property, itemValue, link);\n// editor.onQuestionEditorChanged(model);\n// });\n// });\n// });\n// }","// extracted by mini-css-extract-plugin","import {\n Base,\n ItemValue,\n property,\n QuestionCheckboxModel,\n QuestionSelectBase,\n Serializer,\n JsonObjectProperty,\n DragOrClickHelper\n} from \"survey-core\";\nimport { CreatorBase } from \"../creator-base\";\nimport { DragDropChoices } from \"survey-core\";\nrequire(\"./item-value.scss\");\nimport { getLocString } from \"../editorLocalization\";\nimport { getNextItemText } from \"../utils/utils\";\nimport { ICollectionItemAllowOperations } from \"../creator-settings\";\nimport { StringEditorConnector, StringEditorViewModelBase } from \"./string-editor\";\n\nexport class ItemValueWrapperViewModel extends Base {\n @property({ defaultValue: false }) isNew: boolean;\n @property({ defaultValue: false }) isDragging: boolean;\n @property({ defaultValue: false }) isDragDropGhost: boolean;\n @property({ defaultValue: false }) isDragDropMoveDown: boolean;\n @property({ defaultValue: false }) isDragDropMoveUp: boolean;\n @property({ defaultValue: null }) ghostPosition: string; // need fot image-item-value\n constructor(\n public creator: CreatorBase,\n public question: QuestionSelectBase,\n public item: ItemValue\n ) {\n super();\n\n this.updateIsNew(question, item);\n const updateFromProperty = () => {\n this.updateIsNew(question, item);\n };\n if (question.noneItem === item) {\n question.registerFunctionOnPropertyValueChanged(\"showNoneItem\", updateFromProperty);\n } else if (question.otherItem === item) {\n question.registerFunctionOnPropertyValueChanged(\"showOtherItem\", updateFromProperty);\n } else if (\n question.isDescendantOf(\"checkbox\") &&\n (<QuestionCheckboxModel>question).selectAllItem === item\n ) {\n question.registerFunctionOnPropertyValueChanged(\"showSelectAllItem\", updateFromProperty);\n } else if (this.isNew) {\n question.visibleChoicesChangedCallback = () => {\n this.updateNewItemValue();\n };\n this.updateNewItemValue();\n }\n this.dragDropHelper.onGhostPositionChanged.add(\n this.handleDragDropGhostPositionChanged\n );\n this.dragOrClickHelper = new DragOrClickHelper(this.startDragItemValue);\n\n this.allowItemOperations = { allowDelete: undefined, allowEdit: undefined };\n this.collectionProperty = Serializer.findProperty(question.getType(), this.collectionPropertyName);\n this.creator.onCollectionItemAllowingCallback(question,\n this.collectionProperty,\n question.visibleChoices,\n this.item,\n this.allowItemOperations\n );\n if (this.allowItemOperations.allowDelete === undefined) {\n this.allowItemOperations.allowDelete = true;\n }\n\n if (!this.creator.isCanModifyProperty(question, \"choices\")) {\n this.canTouchItems = false;\n }\n }\n\n private dragOrClickHelper: DragOrClickHelper;\n private allowItemOperations: ICollectionItemAllowOperations;\n private canTouchItems: boolean = true;\n private focusCameFromDown: boolean = false;\n private collectionProperty: JsonObjectProperty\n\n get canBeDragged(): boolean {\n return !this.isNew && this.question.choices.indexOf(this.item) > -1;\n }\n private isBanStartDrag(pointerDownEvent: PointerEvent): boolean {\n const isContentEditable = (<HTMLElement>pointerDownEvent.target).getAttribute(\"contenteditable\") === \"true\";\n return isContentEditable || !this.canBeDragged;\n }\n private updateNewItemValue() {\n if (!this.creator || !this.question || !this.question.newItem) return;\n this.question.newItem.value = this.creator.getNextItemValue(this.question);\n this.question.newItem.text = getNextItemText(this.question.choices);\n }\n private get collectionPropertyName(): string {\n return !!this.item.ownerPropertyName ? this.item.ownerPropertyName : \"choices\";\n }\n\n onPointerDown(pointerDownEvent: PointerEvent) {\n if (this.isBanStartDrag(pointerDownEvent)) return true;\n this.dragOrClickHelper.onPointerDown(pointerDownEvent);\n return false;\n }\n\n startDragItemValue = (pointerDownEvent: PointerEvent, currentTarget: any) => {\n this.dragDropHelper.startDrag(pointerDownEvent, this.item, this.question, <HTMLElement>currentTarget);\n }\n\n private get dragDropHelper(): DragDropChoices {\n return this.creator.dragDropChoices;\n }\n public dispose() {\n super.dispose();\n this.dragDropHelper.onGhostPositionChanged.remove(\n this.handleDragDropGhostPositionChanged\n );\n }\n private handleDragDropGhostPositionChanged = () => {\n this.ghostPosition = this.dragDropHelper.getGhostPosition(this.item);\n this.isDragDropGhost = this.item === this.dragDropHelper.draggedElement;\n\n if (this.item === this.dragDropHelper.prevDropTarget) {\n this.isDragDropMoveDown = (<any>this.item).isDragDropMoveDown;\n this.isDragDropMoveUp = (<any>this.item).isDragDropMoveUp;\n } else {\n this.isDragDropMoveDown = false;\n this.isDragDropMoveUp = false;\n }\n };\n get isDraggable() {\n return this.isDraggableItem(this.item);\n }\n public isDraggableItem(item: ItemValue) {\n if (this.creator.readOnly || !this.canTouchItems) return false;\n return this.question.choices.indexOf(item) !== -1;\n }\n\n public add(model: ItemValueWrapperViewModel) {\n if (model.question.noneItem === model.item) {\n model.question.hasNone = true;\n return;\n } else if (model.question.otherItem === model.item) {\n model.question.hasOther = true;\n return;\n } else if (\n model.question.isDescendantOf(\"checkbox\") &&\n (<QuestionCheckboxModel>model.question).selectAllItem === model.item\n ) {\n (<any>model.question).hasSelectAll = true;\n return;\n } else {\n this.addNewItem(model.item, model.question, model.creator);\n }\n this.updateIsNew(model.question, model.item);\n }\n public addNewItem(item: ItemValue, question: QuestionSelectBase, creator: CreatorBase) {\n item.value = \"newitem\";\n const itemValue = creator.createNewItemValue(question);\n question.choices.push(itemValue);\n this.updateNewItemValue();\n creator.onItemValueAddedCallback(question, this.collectionPropertyName, itemValue, question.choices);\n StringEditorConnector.get(itemValue.locText).setAutoFocus();\n }\n\n public remove(model: ItemValueWrapperViewModel) {\n if (model.question.noneItem === model.item) {\n model.question.hasNone = false;\n } else if (model.question.otherItem === model.item) {\n model.question.hasOther = false;\n } else if (\n model.question.isDescendantOf(\"checkbox\") &&\n (<QuestionCheckboxModel>model.question).selectAllItem === model.item\n ) {\n (<any>model.question).hasSelectAll = false;\n } else {\n const choices = model.question.choices;\n var index = choices.indexOf(model.item);\n if(!this.creator.onCollectionItemDeletingCallback(model.question, this.collectionProperty, choices, model.item)) return;\n var indexToFocus = this.findNextElementIndexToRemove(index);\n model.question.choices.splice(index, 1);\n this.focusNextElementToRemove(indexToFocus);\n }\n this.updateIsNew(model.question, model.item);\n }\n\n public onFocusOut(event: any): void {\n this.question[\"_lastActiveItemValueIndex\"] = this.question.choices.indexOf(this.item);\n }\n\n private findNextElementIndexToRemove(index) {\n let indexToFocus = 0;\n if (this.question.choices.length > 0) {\n if (index < this.question[\"_lastActiveItemValueIndex\"]) {\n indexToFocus = index - 1;\n }\n else {\n indexToFocus = index;\n }\n if (indexToFocus < 0) indexToFocus = 0;\n if (indexToFocus >= this.question.choices.length - 2) indexToFocus = this.question.choices.length - 2;\n }\n return indexToFocus;\n }\n private focusNextElementToRemove(index) {\n setTimeout(() => {\n const el = document.getElementById(this.question.id);\n const buttons = el.querySelectorAll(\".svc-item-value-controls__remove\");\n (buttons[index] as HTMLElement)?.focus();\n }, 100\n );\n }\n private updateIsNew(question: QuestionSelectBase, item: ItemValue) {\n this.isNew = !question.isItemInList(item);\n }\n\n get allowRemove() {\n const isNew = !this.question.isItemInList(this.item);\n return !this.creator.readOnly && this.canTouchItems && (this.allowItemOperations.allowDelete) && !isNew;\n }\n get tooltip() {\n return getLocString(this.isNew ? \"pe.addItem\" : \"pe.removeItem\");\n }\n get dragTooltip() {\n return getLocString(\"pe.dragItem\");\n }\n get allowAdd() {\n const isNew = !this.question.isItemInList(this.item);\n return !this.creator.readOnly && this.canTouchItems && isNew;\n }\n public select(model: ItemValueWrapperViewModel, event: Event) {\n model.creator.selectElement(model.question, \"choices\", false);\n event && event.stopPropagation();\n }\n}\n","// extracted by mini-css-extract-plugin","import { Question, Serializer, QuestionFactory, property, Helpers } from \"survey-core\";\nimport { editorLocalization } from \"../editorLocalization\";\n\nrequire(\"./link-value.scss\");\n\nexport class QuestionLinkValueModel extends Question {\n public linkClickCallback: () => void;\n public resetClickCallback: () => void;\n @property({ defaultValue: \"svc-link-value-button svc-question-link__set-button\" }) public linkSetButtonCssClasses: string;\n @property({ defaultValue: \"svc-question-link__clear-button\" }) public linkClearButtonCssClasses: string;\n\n @property({ defaultValue: false }) isSelected: boolean;\n @property() linkValueText: string;\n @property({ defaultValue: false }) showClear: boolean;\n @property({ defaultValue: true }) allowClear: boolean;\n @property({ defaultValue: true }) showValueInLink: boolean;\n @property({ defaultValue: false }) showTooltip: boolean;\n constructor(name: string, json: any = null) {\n super(name);\n const linkValueText = json && !json.showValueInLink && (editorLocalization.getString(\"pe.set\")) + \" \" + json.title || null;\n this.linkValueText = linkValueText || editorLocalization.getString(\"pe.emptyValue\");\n }\n protected onPropertyValueChanged(name: string, oldValue: any, newValue: any) {\n super.onPropertyValueChanged(name, oldValue, newValue);\n if (name === \"value\") {\n this.updateLinkValueText();\n if (this.allowClear) {\n this.showClear = !Helpers.isValueEmpty(newValue);\n }\n }\n }\n\n public get ariaRole(): string {\n return \"button\";\n }\n\n public get tooltip() {\n return this.showTooltip ? this.linkValueText : undefined;\n }\n public getType(): string {\n return \"linkvalue\";\n }\n public doLinkClick() {\n if (!!this.linkClickCallback) {\n this.linkClickCallback();\n }\n }\n public doClearClick() {\n if (!!(<any>this).clearClickCallback) {\n (<any>this).clearClickCallback();\n }\n }\n private updateLinkValueText() {\n let displayValue;\n if (this.showValueInLink) {\n displayValue = this.isEmpty() ? editorLocalization.getString(\"pe.emptyValue\") : this.getObjDisplayValue();\n } else {\n displayValue = editorLocalization.getString(this.isEmpty() ? \"pe.set\" : \"pe.change\") + \" \" + this.title;\n }\n this.linkValueText = displayValue;\n }\n private stringifyValue(val: any): string {\n if (typeof val !== \"string\") return JSON.stringify(val);\n return val;\n }\n private getObjDisplayValue(): string {\n const obj = (<any>this).obj;\n if (!obj || !obj[\"getDisplayValue\"]) return this.stringifyValue(this.value);\n var res = obj[\"getDisplayValue\"](true, this.value);\n if (typeof res !== \"string\") return JSON.stringify(res);\n return res;\n }\n}\n\nSerializer.addClass(\n \"linkvalue\",\n [\"showValueInLink\",\n {\n name: \"showTooltip: boolean\",\n default: false,\n visible: false\n }],\n function (json) {\n const viewModel = new QuestionLinkValueModel(\"\", json);\n return viewModel;\n },\n \"nonvalue\"\n);\n\nQuestionFactory.Instance.registerQuestion(\"linkvalue\", (name) => {\n return new QuestionLinkValueModel(name);\n});","// extracted by mini-css-extract-plugin","import {\n SurveyModel,\n Base,\n Question,\n settings,\n MatrixDropdownColumn,\n property,\n QuestionMatrixDropdownModelBase,\n QuestionSelectBase,\n} from \"survey-core\";\nimport { CreatorBase } from \"../creator-base\";\nimport { defaultV2Css } from \"survey-core\";\nimport { toggleHovered } from \"../utils/utils\";\n\nrequire(\"./matrix-cell.scss\");\n\nexport class MatrixCellWrapperEditSurvey {\n private surveyValue: SurveyModel;\n constructor(creator: CreatorBase, private cellQuestion: Question) {\n let questionJSON = cellQuestion.toJSON();\n questionJSON.type = cellQuestion.getType();\n this.surveyValue = creator.createSurvey({ questions: [questionJSON] }, \"modal-question-editor\");\n this.survey.css = defaultV2Css;\n this.survey.setDesignMode(true);\n (<any>this.survey).isPopupEditorContent = true;\n this.survey.showQuestionNumbers = \"none\";\n this.survey.questionTitleLocation = \"hidden\";\n this.survey.getAllQuestions()[0].setSurveyImpl(this.survey);\n }\n public get survey(): SurveyModel { return this.surveyValue; }\n public apply(): void {\n const matrix = <QuestionMatrixDropdownModelBase>this.cellQuestion.parentQuestion;\n const column: MatrixDropdownColumn = matrix.getColumnByName(this.cellQuestion.name);\n const columnJSON = column.toJSON();\n const prevCellType = columnJSON[\"cellType\"];\n const questionJSON = this.survey.getAllQuestions()[0].toJSON();\n if(!!prevCellType) {\n questionJSON.cellType = prevCellType;\n }\n column.fromJSON(questionJSON);\n matrix.onColumnCellTypeChanged(column);\n }\n}\n\nexport class MatrixCellWrapperViewModel extends Base {\n constructor(public creator: CreatorBase, public templateData: any, public question: Question, public row: any, public column: any) {\n super();\n // if(!question && !!this.templateData.data) {\n // this.question = this.templateData.data;\n // }\n creator.onSelectedElementChanged.add(this.onSelectionChanged);\n }\n @property() isSelected: boolean;\n\n private onSelectionChanged = (sender, options) => {\n if (this.context && this.context.getPropertyValue) {\n this.isSelected = this.creator.isElementSelected(this.context);\n } else {\n this.isSelected = false;\n }\n }\n\n public editQuestion(model: MatrixCellWrapperViewModel) {\n const editSurvey = new MatrixCellWrapperEditSurvey(model.creator, model.question);\n settings.showModal(\n \"svc-question-editor-content\",\n {\n survey: editSurvey.survey,\n creator: this.creator\n },\n () => {\n editSurvey.apply();\n return true;\n },\n undefined, \"svc-matrix-cell__popup\", model.question.name,\n this.creator.isMobileView ? \"overlay\" : \"popup\"\n );\n }\n get context() {\n return this.row || this.column || this.templateData;\n }\n public selectContext(model: MatrixCellWrapperViewModel, event: MouseEvent) {\n if (!!model.row) {\n model.creator.selectElement(model.row.data, \"rows\", false);\n event.stopPropagation();\n return;\n }\n if (typeof model.context.getType !== \"function\") {\n return;\n }\n const contextType = model.context.getType();\n if (contextType === \"itemvalue\") {\n model.creator.selectElement(model.context.locOwner, model.context.ownerPropertyName, false);\n } else {\n model.creator.selectElement(model.context);\n }\n event.stopPropagation();\n }\n public hover(event: MouseEvent, element: HTMLElement | any) {\n if (!this.row && this.context && this.context.getPropertyValue && this.context.getType && this.context.getType() !== \"itemvalue\") {\n toggleHovered(event, element);\n }\n }\n public dispose() {\n this.creator.onSelectedElementChanged.remove(this.onSelectionChanged);\n }\n}\n","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","import { PagesController } from \"../../pages-controller\";\nimport { PageModel, PopupModel, ListModel, Base, propertyArray, SurveyModel, property, IAction, Action, ComputedUpdater } from \"survey-core\";\n\nrequire(\"./page-navigator.scss\");\nrequire(\"./page-navigator-item.scss\");\nimport { getLocString } from \"../../editorLocalization\";\n\nexport class PageNavigatorViewModel extends Base {\n public icon: string;\n public pageListModel: ListModel;\n public popupModel: PopupModel;\n private pagesChangedFunc = (sender: PagesController, options: any) => {\n this.buildItems();\n };\n private currentPagesChangedFunc = (sender: PagesController, options: any) => {\n this.currentPage = this.pagesController.currentPage;\n };\n private _resizeObserver: ResizeObserver;\n\n constructor(private pagesController: PagesController, private pageEditMode: string) {\n super();\n this.icon = \"icon-select-page\";\n this.pagesController.onPagesChanged.add(this.pagesChangedFunc);\n this.pagesController.onCurrentPageChanged.add(this.currentPagesChangedFunc);\n this.pageListModel = new ListModel(\n [],\n (item) => {\n this.pagesController.selectPage(item.data);\n this.popupModel.toggleVisibility();\n },\n true\n );\n this.popupModel = new PopupModel(\"sv-list\", { model: this.pageListModel });\n !!this.pagesController && (this.popupModel.horizontalPosition = this.pagesController.creator[\"toolboxLocation\"]);\n this.popupModel.onShow = () => {\n this.pageListModel.selectedItem = this.getActionBarByPage(this.pagesController.currentPage);\n this.isPopupOpened = true;\n };\n this.popupModel.onHide = () => { this.isPopupOpened = false; };\n if (!!this.pagesController.creator[\"onPropertyChanged\"]) {\n this.pagesController.creator[\"onPropertyChanged\"].add((sender, options) => {\n if (options.name === \"toolboxLocation\") {\n if (this.pagesController.creator[\"toolboxLocation\"] == \"sidebar\") {\n this.popupModel.horizontalPosition = \"right\";\n } else {\n this.popupModel.horizontalPosition = this.pagesController.creator[\"toolboxLocation\"];\n }\n }\n });\n }\n this.buildItems();\n }\n public dispose() {\n super.dispose();\n this.stopItemsContainerHeightObserver();\n this.pagesController.onPagesChanged.remove(this.pagesChangedFunc);\n this.pagesController.onCurrentPageChanged.remove(this.currentPagesChangedFunc);\n }\n\n @propertyArray() items: Array<IAction>;\n @property({ defaultValue: false }) visible: boolean;\n @property({ defaultValue: false }) isPopupOpened: boolean;\n private getActionBarByPage(page: PageModel): IAction {\n for (var i = 0; i < this.items.length; i++) {\n if (this.items[i].data === page) return this.items[i];\n }\n return null;\n }\n private setItems(items: Array<IAction>) {\n this.items = items;\n this.pageListModel.setItems(items);\n this.visible = items.length > 1 || this.pageEditMode === \"bypage\";\n }\n private buildItems() {\n this.currentPage = this.pagesController.currentPage || this.pagesController.pages[0];\n var items = [];\n var pages = this.pagesController.pages;\n for (var i = 0; i < pages.length; i++) {\n items.push(this.createActionBarItem(pages[i]));\n }\n if (this.pagesController.creator[\"pageEditMode\"] === \"bypage\") {\n const newPage = (<any>this.pagesController[\"creator\"]).getPlugin(\"designer\").model.newPage;\n if (!!newPage) {\n items.push(this.createActionBarItem(newPage));\n }\n }\n this.setItems(items);\n }\n private patchContainerOffset(el: HTMLElement) {\n while (!!el) {\n if (el.className.indexOf(\"svc-tab-designer--with-page-navigator\") !== -1) {\n el.offsetParent.scrollTop = 0;\n return;\n }\n el = el.parentElement;\n }\n }\n private createActionBarItem(page: PageModel): Action {\n const item: IAction = {\n id: page.id,\n title: <any>new ComputedUpdater<string>(() => {\n var pageName = page.name;\n var pageTitle = page.title;\n return this.pagesController\n ? this.pagesController.getDisplayName(page)\n : (pageTitle || pageName);\n })\n };\n item.active = <any>new ComputedUpdater<boolean>(() => page === this.currentPage);\n item.action = (item: any) => {\n if (this.pageEditMode === \"bypage\") {\n this.pagesController.currentPage = page;\n this.currentPage = page;\n this.pagesController.creator.selectElement(this.pagesController.currentPage);\n return;\n }\n const el: any = document.getElementById(page.id);\n if (!!el) {\n el.scrollIntoView({ block: \"start\" });\n this.patchContainerOffset(el);\n const isLastPage = this.pagesController.pages.indexOf(page) === (this.pagesController.pages.length - 1);\n if (isLastPage) {\n setTimeout(() => {\n el.scrollIntoView({ block: \"start\" });\n this.patchContainerOffset(el);\n }, 50);\n }\n }\n };\n item.data = page;\n return this.createActionBarCore(item);\n }\n protected createActionBarCore(item: IAction): Action {\n return new Action(item);\n }\n togglePageSelector = (event?: any) => this.popupModel.toggleVisibility();\n public get pageSelectorCaption() {\n return getLocString(\"ed.selectPage\");\n }\n public onContainerScroll(viewPort: HTMLDivElement): any {\n const viewPortTop = viewPort.scrollTop;\n const viewPortHeight = viewPort.clientHeight;\n const viewPortBottom = viewPortTop + viewPortHeight;\n const visiblePages = [];\n let maxVisiblePage = undefined;\n let maxVisiblePagePart = 0;\n this.pagesController.pages.forEach(page => {\n const pageElement = document.getElementById(page.id);\n if (!!pageElement) {\n const pageTop = pageElement.offsetTop;\n const pageBottom = pageTop + pageElement.clientHeight;\n const possiblyVisible = pageTop < viewPortBottom || pageBottom > viewPortTop;\n if (!possiblyVisible) return;\n const deltaTop = pageTop - viewPortTop;\n const deltaBottom = viewPortBottom - pageBottom;\n let visiblePart = pageElement.clientHeight;\n if (deltaTop < 0) {\n visiblePart += deltaTop;\n }\n if (deltaBottom < 0) {\n visiblePart += deltaBottom;\n }\n visiblePart = visiblePart / pageElement.clientHeight;\n if (visiblePart > 0) {\n visiblePages.push({\n page,\n visiblePart\n });\n if (visiblePart > maxVisiblePagePart) {\n maxVisiblePagePart = visiblePart;\n maxVisiblePage = page;\n }\n }\n }\n });\n this.currentPage = maxVisiblePage;\n return visiblePages;\n }\n @property({\n onSet: (page: PageModel, navigator: PageNavigatorViewModel) => {\n const currantPageIndex = navigator.pagesController.pages.indexOf(page);\n if (currantPageIndex >= navigator.visibleItemsStartIndex && currantPageIndex < navigator.visibleItemsStartIndex + navigator.visibleItemsCount) {\n return;\n }\n let newVisibleItemsStartIndex = navigator.visibleItemsStartIndex;\n if (currantPageIndex < navigator.visibleItemsStartIndex) {\n newVisibleItemsStartIndex = currantPageIndex;\n }\n if (currantPageIndex >= navigator.visibleItemsStartIndex + navigator.visibleItemsCount) {\n newVisibleItemsStartIndex = currantPageIndex - navigator.visibleItemsCount + 1;\n }\n if (navigator.visibleItemsStartIndex !== newVisibleItemsStartIndex) {\n if (navigator.visible && !!navigator._itemsContainer) {\n const itemsHolder = navigator._itemsContainer.querySelectorAll(\".svc-page-navigator__selector + div\")[0];\n if(!!itemsHolder) {\n const cssClass = \"svc-page-navigator__items--\" + (navigator.visibleItemsStartIndex < newVisibleItemsStartIndex ? \"up\" : \"down\");\n itemsHolder.className = cssClass;\n setTimeout(() => {\n itemsHolder.className = \"\";\n navigator.visibleItemsStartIndex = newVisibleItemsStartIndex;\n }, 250);\n }\n } else {\n navigator.visibleItemsStartIndex = newVisibleItemsStartIndex;\n }\n }\n }\n }) currentPage: PageModel;\n\n public stopItemsContainerHeightObserver() {\n this._itemsContainer = undefined;\n if (!!this._resizeObserver) {\n this._resizeObserver.disconnect();\n this._resizeObserver = undefined;\n }\n this.visibleItemsStartIndex = 0;\n this.visibleItemsCount = Number.MAX_VALUE;\n }\n @property({ defaultValue: 0 }) visibleItemsStartIndex: number;\n @property({ defaultValue: Number.MAX_VALUE }) visibleItemsCount: number;\n private _itemsContainer: HTMLDivElement;\n public setItemsContainer(itemsContainer: HTMLDivElement | any) {\n this.stopItemsContainerHeightObserver();\n this._itemsContainer = itemsContainer;\n this._resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[], observer: ResizeObserver) => this.updateVisibleItems(entries[0].contentBoxSize[0].blockSize));\n this._resizeObserver.observe(itemsContainer);\n }\n public static PAGE_NAVIGATION_MENU_ITEM_HEIGHT = 44;\n public static PAGE_NAVIGATION_ITEM_HEIGHT = 36;\n protected updateVisibleItems(allAvailableHeight: number): void {\n const itemsAvailableHeight = allAvailableHeight - PageNavigatorViewModel.PAGE_NAVIGATION_MENU_ITEM_HEIGHT;\n this.visibleItemsCount = Math.floor(itemsAvailableHeight / PageNavigatorViewModel.PAGE_NAVIGATION_ITEM_HEIGHT);\n\n const currantPageIndex = this.pagesController.pages.indexOf(this.currentPage);\n let visibleStart = 0;\n if (currantPageIndex >= this.visibleItemsCount) {\n visibleStart = this.items.length - currantPageIndex - 1 < this.visibleItemsCount / 2 ? this.items.length - this.visibleItemsCount : currantPageIndex - Math.floor(this.visibleItemsCount / 2);\n }\n this.visibleItemsStartIndex = visibleStart;\n }\n public get visibleItems() {\n if (this.items.length <= this.visibleItemsCount) {\n return this.items;\n }\n return this.items.slice(this.visibleItemsStartIndex, this.visibleItemsStartIndex + this.visibleItemsCount);\n }\n}\n","// extracted by mini-css-extract-plugin","import { IAction, PageModel, property, SurveyElement, SurveyModel } from \"survey-core\";\nimport { CreatorBase } from \"../creator-base\";\nimport { IPortableMouseEvent } from \"../utils/events\";\nimport { SurveyElementAdornerBase } from \"./action-container-view-model\";\nimport { toggleHovered } from \"../utils/utils\";\nrequire(\"./page.scss\");\nimport { SurveyHelper } from \"../survey-helper\";\nimport { settings } from \"../creator-settings\";\n\nexport class PageAdorner extends SurveyElementAdornerBase<PageModel> {\n @property({ defaultValue: false }) isSelected: boolean;\n @property({ defaultValue: true }) isPageLive: boolean;\n public onPageSelectedCallback: () => void;\n public questionTypeSelectorModel: any;\n @property({ defaultValue: \"\" }) currentAddQuestionType: string;\n\n constructor(creator: CreatorBase, page: PageModel) {\n super(creator, page);\n this.actionContainer.sizeMode = \"small\";\n this.questionTypeSelectorModel = this.creator.getQuestionTypeSelectorModel(\n (type) => {\n this.currentAddQuestionType = type;\n this.addGhostPage();\n }\n );\n this.attachElement(this.page);\n }\n\n protected attachElement(surveyElement: PageModel): void {\n super.attachElement(surveyElement);\n\n if (!!this.page) {\n\n this.page[\"surveyChangedCallback\"] = () => {\n this.isPageLive = !!this.page.survey;\n };\n if (this.isGhost) {\n this.updateActionsProperties();\n this.page.registerFunctionOnPropertiesValueChanged(\n [\"title\", \"description\"],\n () => {\n this.addGhostPage();\n }\n );\n this.patchPageForDragDrop(this.page, this.addGhostPage);\n }\n this.page.onFirstRendering();\n this.page.updateCustomWidgets();\n this.page.setWasShown(true);\n this.checkActionProperties();\n }\n }\n\n protected onElementSelectedChanged(isSelected: boolean) {\n super.onElementSelectedChanged(isSelected);\n this.isSelected = isSelected;\n if (isSelected && !!this.onPageSelectedCallback) {\n this.onPageSelectedCallback();\n }\n }\n private patchPageForDragDrop(page: PageModel, addGhostPage: () => void) {\n // need for the drag drop see https://github.com/surveyjs/survey-library/blob/871492817561de11f934ebdf50481770300a396a/src/dragdrop/survey-elements.ts#L266\n page[\"_isGhost\"] = true;\n page[\"_addGhostPageViewModel\"] = () => {\n delete page[\"_isGhost\"];\n delete page[\"_addGhostPageViewModel\"];\n addGhostPage();\n };\n }\n public dispose() {\n super.dispose();\n if (!!this.page) {\n this.page.unRegisterFunctionOnPropertiesValueChanged([\n \"title\",\n \"description\"\n ]);\n }\n this.onPropertyValueChangedCallback = undefined;\n }\n public get isGhost(): boolean {\n return this.creator.survey.pages.indexOf(this.page) < 0;\n }\n protected isOperationsAllow(): boolean {\n return super.isOperationsAllow() && !this.isGhost && this.creator.pageEditMode !== \"single\" && this.creator.allowModifyPages;\n }\n protected getPage(): PageModel {\n return this.surveyElement as PageModel;\n }\n get page(): PageModel {\n return this.getPage();\n }\n\n private addGhostPage = (selectCurrentPage: boolean = true) => {\n const currentPage = this.page;\n if(this.isGhost) {\n if(!!this.creator.addPage(currentPage, selectCurrentPage, () => {\n currentPage.unRegisterFunctionOnPropertiesValueChanged([\n \"title\",\n \"description\"\n ]);\n currentPage.name = SurveyHelper.getNewPageName(this.creator.survey.pages);\n return true;\n })) {\n this.creator.survey.currentPage = currentPage;\n }\n }\n if(selectCurrentPage) {\n this.creator.selectElement(currentPage);\n }\n }\n\n addNewQuestion(model: PageAdorner, event: IPortableMouseEvent) {\n this.creator.addNewQuestionInPage((type) => {\n this.addGhostPage(false);\n this.creator.survey.currentPage = this.page;\n }, null, this.currentAddQuestionType || settings.designer.defaultAddQuestionType);\n }\n select(model: PageAdorner, event: IPortableMouseEvent) {\n if (!model.isGhost) {\n if (model.creator.pageEditMode !== \"single\") {\n model.creator.selectElement(model.page, undefined, false);\n if (!!this.onPageSelectedCallback) {\n this.onPageSelectedCallback();\n }\n }\n else {\n model.creator.selectElement(model.creator.survey, undefined, false);\n }\n }\n event.stopPropagation();\n event.cancelBubble = true;\n }\n\n get css(): string {\n if (this.isGhost) {\n return \"svc-page__content--new\";\n }\n return this.creator.isElementSelected(this.page)\n ? \"svc-page__content--selected\"\n : \"\";\n }\n public hover(event: MouseEvent, element: HTMLElement | any) {\n toggleHovered(event, element, this.creator.pageHoverDelay);\n }\n public hoverStopper(event: MouseEvent, element: HTMLElement | any) {\n event[\"__svc_question_processed\"] = true;\n }\n\n protected duplicate() {\n var newElement = this.creator.copyPage(this.page);\n this.creator.selectElement(newElement);\n }\n public get addNewQuestionText(): string {\n if (!this.currentAddQuestionType && this.creator)\n return this.creator.getLocString(\"ed.addNewQuestion\");\n return !!this.creator ? this.creator.getAddNewQuestionText(this.currentAddQuestionType) : \"\";\n }\n}\n","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","\nimport { QuestionDropdownModel, SurveyElement, SurveyTemplateRendererTemplateData, SurveyModel, property, CssClassBuilder, ItemValue } from \"survey-core\";\nimport { CreatorBase } from \"../creator-base\";\nimport { QuestionAdornerViewModel } from \"./question\";\nimport { editorLocalization } from \"../editorLocalization\";\n\nrequire(\"./question-dropdown.scss\");\n\nexport class QuestionDropdownAdornerViewModel extends QuestionAdornerViewModel {\n @property({ defaultValue: true }) private isCollapsed: boolean;\n @property({ defaultValue: -1 }) private visibleCount: number;\n\n constructor(\n creator: CreatorBase,\n surveyElement: SurveyElement,\n templateData: SurveyTemplateRendererTemplateData,\n ) {\n super(creator, surveyElement, templateData);\n this.surveyElement.registerFunctionOnPropertyValueChanged(\"isSelectedInDesigner\",\n () => {\n this.leftFocus();\n }, \"dropdownCollapseChecker\");\n this.visibleCount = creator.maxVisibleChoices;\n this.isCollapsed = this.isCollapsed && this.needToCollapse;\n }\n\n get question(): QuestionDropdownModel {\n return this.surveyElement as QuestionDropdownModel;\n }\n\n get itemComponent(): string {\n if (this.surveyElement.isDescendantOf(\"dropdown\")) {\n return \"survey-radiogroup-item\";\n }\n return \"survey-checkbox-item\";\n }\n\n get needToCollapse(): boolean {\n return this.visibleCount > 0 && this.question.visibleChoices.length > this.visibleCount;\n }\n\n get isCollapseView(): boolean {\n return this.isCollapsed;\n }\n\n public leftFocus(): void {\n if (!this.creator.isElementSelected(this.surveyElement) && !this.isCollapsed) {\n this.isCollapsed = this.needToCollapse;\n }\n }\n\n public getChoiceCss(): string {\n return new CssClassBuilder()\n .append(\"svc-question__dropdown-choice\")\n .append(\"svc-question__dropdown-choice--collapsed\", this.isCollapsed && this.needToCollapse)\n .toString();\n }\n\n public getRenderedItems(): ItemValue[] {\n return this.isCollapsed ?\n this.question.visibleChoices.slice(0, this.visibleCount) :\n this.question.visibleChoices;\n }\n\n public getButtonText(): string {\n return !this.isCollapsed ?\n editorLocalization.getString(\"ed.showLessChoices\") :\n editorLocalization.getString(\"ed.showMoreChoices\");\n }\n\n public switchCollapse = (): void => {\n this.isCollapsed = !this.isCollapsed;\n }\n\n public dispose(): void {\n super.dispose();\n this.surveyElement.unRegisterFunctionOnPropertyValueChanged(\"isSelectedInDesigner\", \"dropdownCollapseChecker\");\n }\n\n}","// extracted by mini-css-extract-plugin","\nimport { QuestionImageModel, SurveyElement, SurveyTemplateRendererTemplateData, SurveyModel } from \"survey-core\";\nimport { CreatorBase } from \"../creator-base\";\nimport { QuestionAdornerViewModel } from \"./question\";\n\nrequire(\"./question-image.scss\");\n\nexport class QuestionImageAdornerViewModel extends QuestionAdornerViewModel {\n constructor(\n creator: CreatorBase,\n surveyElement: SurveyElement,\n templateData: SurveyTemplateRendererTemplateData,\n public questionRoot: HTMLElement\n ) {\n super(creator, surveyElement, templateData);\n }\n\n chooseFile(model: QuestionImageAdornerViewModel) {\n const fileInput = <HTMLInputElement>model.questionRoot.getElementsByClassName(\"svc-choose-file-input\")[0];\n model.creator.chooseFiles(fileInput, (files: File[]) => {\n model.creator.uploadFiles(files, model.surveyElement as QuestionImageModel, (_, link) => {\n (<QuestionImageModel>model.surveyElement).imageLink = link;\n });\n });\n }\n}","// extracted by mini-css-extract-plugin","import {\n SurveyElement,\n SurveyTemplateRendererTemplateData,\n Serializer,\n QuestionRatingModel,\n surveyLocalization,\n ItemValue,\n Base\n} from \"survey-core\";\nimport { CreatorBase } from \"../creator-base\";\nimport { getLocString } from \"../editorLocalization\";\nimport { getNextValue } from \"../utils/utils\";\n\nrequire(\"./question-rating.scss\");\n\nexport class QuestionRatingAdornerViewModel extends Base {\n constructor(\n public creator: CreatorBase,\n public surveyElement: SurveyElement,\n public templateData: SurveyTemplateRendererTemplateData\n ) {\n super();\n }\n\n get element(): QuestionRatingModel {\n return this.surveyElement as QuestionRatingModel;\n }\n\n public addItem(model: QuestionRatingAdornerViewModel) {\n if (!model.allowAdd) return;\n if (model.element.rateValues.length === 0) {\n model.element.rateMax += model.element.rateStep;\n } else {\n let nextValue = null;\n const values = model.element.rateValues.map(function (item) {\n return item.value;\n });\n const itemText = model.creator.getChoicesItemBaseTitle();\n nextValue = getNextValue(itemText, values);\n\n const itemValue = new ItemValue(nextValue);\n itemValue.locOwner = <any>{\n getLocale: () => {\n if (!!model.element[\"getLocale\"]) return model.element.getLocale();\n return \"\";\n },\n getMarkdownHtml: (text: string) => {\n return text;\n },\n getProcessedText: (text: string) => {\n return text;\n }\n };\n model.element.rateValues = model.element.rateValues.concat([itemValue]);\n const rateValues = model.element.rateValues;\n model.creator.onItemValueAddedCallback(model.element, \"rateValues\", rateValues[rateValues.length - 1], rateValues);\n }\n }\n public removeItem(model: QuestionRatingAdornerViewModel) {\n if (!model.allowRemove) return;\n const property = Serializer.findProperty(model.element.getType(), \"rateValues\");\n const itemIndex = model.element.rateValues && model.element.rateValues.length - 1;\n const item = (model.element.rateValues && model.element.rateValues[itemIndex]) || null;\n const allowDelete = model.creator.onCollectionItemDeletingCallback(\n model.element,\n property,\n model.element.rateValues,\n item\n );\n if (allowDelete) {\n const question = model.element;\n if (\n question.rateValues.length === 0 &&\n itemIndex === question.rateValues.length - 1\n ) {\n question.rateMax -= question.rateStep;\n } else {\n if (question.rateValues.length === 0) {\n // eslint-disable-next-line no-self-assign\n question.rateValues = question.rateValues;\n }\n question.rateValues.splice(itemIndex, 1);\n }\n }\n }\n public get allowAdd() {\n return !this.creator.readOnly &&\n (this.creator.maximumRateValues < 1 ||\n ((this.element.rateValues.length > 0 || this.creator.maximumRateValues > this.element.rateMax) && (this.element.rateValues.length < 1 || this.creator.maximumRateValues > this.element.rateValues.length)));\n }\n public get allowRemove() {\n return !this.creator.readOnly;\n }\n get addTooltip() {\n return getLocString(\"pe.addItem\");\n }\n get removeTooltip() {\n return getLocString(\"pe.removeItem\");\n }\n}\n","// extracted by mini-css-extract-plugin","import {\n SurveyElement,\n SurveyModel,\n SurveyTemplateRendererTemplateData,\n property,\n QuestionHtmlModel,\n PanelModelBase,\n Action,\n Question,\n ItemValue,\n Serializer,\n DragTypeOverMeEnum,\n IAction,\n ComputedUpdater,\n DragOrClickHelper,\n QuestionSelectBase,\n createDropdownActionModel\n} from \"survey-core\";\nimport { CreatorBase } from \"../creator-base\";\nimport { DragDropSurveyElements } from \"survey-core\";\nimport { getLocString } from \"../editorLocalization\";\nimport { QuestionConverter } from \"../questionconverter\";\nimport { IPortableDragEvent, IPortableMouseEvent } from \"../utils/events\";\nimport {\n isPropertyVisible,\n propertyExists,\n toggleHovered\n} from \"../utils/utils\";\nimport { SurveyElementAdornerBase } from \"./action-container-view-model\";\nrequire(\"./question.scss\");\nimport { settings } from \"../creator-settings\";\nimport { StringEditorConnector, StringItemsNavigatorBase } from \"./string-editor\";\n\nexport class QuestionAdornerViewModel extends SurveyElementAdornerBase {\n @property() isDragged: boolean;\n @property({ defaultValue: \"\" }) currentAddQuestionType: string;\n\n private dragOrClickHelper: DragOrClickHelper;\n\n constructor(\n creator: CreatorBase,\n surveyElement: SurveyElement,\n public templateData: SurveyTemplateRendererTemplateData\n ) {\n super(creator, surveyElement);\n this.actionContainer.sizeMode = \"small\";\n if (\n surveyElement.isQuestion &&\n !!surveyElement[\"setCanShowOptionItemCallback\"]\n ) {\n (<any>surveyElement).setCanShowOptionItemCallback(\n (item: ItemValue): boolean => {\n if (creator.readOnly) return false;\n if (item !== (<QuestionSelectBase>this.surveyElement).newItem) return true;\n return (\n creator.maximumChoicesCount < 1 ||\n surveyElement[\"choices\"].length < creator.maximumChoicesCount\n );\n }\n );\n }\n this.checkActionProperties();\n this.dragOrClickHelper = new DragOrClickHelper(this.startDragSurveyElement);\n this.dragTypeOverMe = <any>new ComputedUpdater(() => {\n let element = this.surveyElement.getType() === \"paneldynamic\" ?\n (<any>this.surveyElement).template :\n this.surveyElement;\n return element.dragTypeOverMe;\n });\n StringItemsNavigatorBase.setQuestion(this);\n }\n\n get element() {\n return this.surveyElement;\n }\n\n select(model: QuestionAdornerViewModel, event: IPortableMouseEvent) {\n if (!model.surveyElement.isInteractiveDesignElement) {\n return;\n }\n event.stopPropagation();\n event.cancelBubble = true;\n model.creator.selectElement(model.surveyElement, undefined, false);\n return true;\n }\n\n rootCss() {\n return this.surveyElement.isQuestion && !(<Question>this.surveyElement).startWithNewLine ? \" svc-question__adorner--start-with-new-line\" : \"\";\n }\n\n css() {\n let result = typeof this.surveyElement.getType === \"function\" ? (\"svc-question__content--\" + this.surveyElement.getType()) : \"\";\n if(this.creator.isElementSelected(this.surveyElement)) {\n result += \" svc-question__content--selected\";\n }\n\n if (this.isEmptyElement) {\n result += \" svc-question__content--empty\";\n }\n\n if (this.isDragMe) {\n result += \" svc-question__content--dragged\";\n } else {\n result = result.replace(\" svc-question__content--dragged\", \"\");\n }\n\n if (this.dragTypeOverMe === DragTypeOverMeEnum.InsideEmptyPanel) {\n result += \" svc-question__content--drag-over-inside\";\n } else {\n result = result.replace(\" svc-question__content--drag-over-inside\", \"\");\n }\n\n if (this.dragTypeOverMe === DragTypeOverMeEnum.MultilineLeft) {\n result += \" svc-question__content--drag-over-left\";\n } else {\n result = result.replace(\" svc-question__content--drag-over-left\", \"\");\n }\n\n if (this.dragTypeOverMe === DragTypeOverMeEnum.MultilineRight) {\n result += \" svc-question__content--drag-over-right\";\n } else {\n result = result.replace(\" svc-question__content--drag-over-right\", \"\");\n }\n\n return result;\n }\n\n get isDragMe(): boolean {\n return this.surveyElement.isDragMe;\n }\n\n @property() dragTypeOverMe: DragTypeOverMeEnum;\n\n dispose() {\n this.surveyElement.unRegisterFunctionOnPropertyValueChanged(\n \"isRequired\",\n \"isRequiredAdorner\"\n );\n if (!!this.surveyElement[\"setCanShowOptionItemCallback\"]) {\n (<any>this.surveyElement).setCanShowOptionItemCallback(undefined);\n }\n }\n get isDraggable() {\n return true;\n }\n public hover(event: MouseEvent, element: HTMLElement | any) {\n if (!this.surveyElement.isInteractiveDesignElement) {\n return;\n }\n this.updateActionsProperties();\n toggleHovered(event, element);\n }\n protected updateElementAllowOptions(options: any, operationsAllow: boolean) {\n super.updateElementAllowOptions(options, operationsAllow);\n this.updateActionVisibility(\"convertTo\", operationsAllow && options.allowChangeType);\n const prop = Serializer.findProperty(this.surveyElement.getType(), \"isRequired\");\n const isPropReadOnly = this.creator.onIsPropertyReadOnlyCallback(this.surveyElement, prop, prop.readOnly, null, null);\n this.updateActionVisibility(\"isrequired\", operationsAllow && options.allowChangeRequired && !isPropReadOnly);\n }\n\n public get isEmptyElement(): boolean {\n if (this.surveyElement instanceof QuestionHtmlModel) {\n return !this.surveyElement.html;\n }\n\n if (this.surveyElement instanceof PanelModelBase) {\n const panel = this.surveyElement as any as PanelModelBase;\n return (\n !panel.rows || panel.rows.length <= 0 || panel.elements.length === 0\n );\n }\n\n return false;\n }\n\n public get placeholderText(): string {\n if (this.surveyElement instanceof QuestionHtmlModel) {\n return getLocString(\"ed.htmlPlaceHolder\");\n }\n return getLocString(\"ed.panelPlaceHolder\");\n }\n\n private get dragDropHelper(): DragDropSurveyElements {\n return this.creator.dragDropSurveyElements;\n }\n\n get isRequired() {\n return (<any>this.surveyElement).isRequired;\n }\n set isRequired(newVal) {\n (<any>this.surveyElement).isRequired = newVal;\n }\n\n onPointerDown(pointerDownEvent: PointerEvent) {\n this.dragOrClickHelper.onPointerDown(pointerDownEvent);\n }\n\n startDragSurveyElement = (event: PointerEvent) => {\n const element = <any>this.surveyElement;\n const isElementSelected = this.creator.selectedElement === element;\n this.dragDropHelper.startDragSurveyElement(event, element, isElementSelected);\n return true;\n }\n public getConvertToTypesActions(): Array<IAction> {\n const convertClasses: string[] = QuestionConverter.getConvertToClasses(\n this.currentType, this.creator.toolbox.itemNames, true\n );\n const res = [];\n let lastItem = null;\n convertClasses.forEach((className: string) => {\n const item = this.creator.toolbox.items.filter(item => item.name == className)[0];\n const needSeparator = lastItem && item.category != lastItem.category;\n const action = this.creator.createIActionBarItemByClass(item.name, item.title, item.iconName, needSeparator);\n lastItem = item;\n res.push(action);\n });\n return res;\n }\n private get currentType(): string {\n return this.surveyElement.getType();\n }\n\n private createConverToAction() {\n const availableTypes = this.getConvertToTypesActions();\n const allowChangeType: boolean = availableTypes.length > 0;\n const curType = this.currentType;\n const selectedItems = availableTypes.filter(item => item.id === curType);\n let actionTitle = selectedItems.length > 0 ? selectedItems[0].title : this.creator.getLocString(\"qt.\" + this.currentType);\n\n const newAction = createDropdownActionModel({\n id: \"convertTo\",\n css: \"sv-action--convertTo sv-action-bar-item--secondary\",\n iconName: \"icon-drop-down-arrow_16x16\",\n iconSize: 16,\n title: actionTitle,\n visibleIndex: 0,\n enabled: allowChangeType,\n disableShrink: true,\n action: (newType) => {\n newAction.popupModel.displayMode = this.creator.isMobileView ? \"overlay\" : \"popup\";\n },\n }, {\n items: availableTypes,\n onSelectionChanged: (item: any) => {\n this.creator.convertCurrentQuestion(item.id);\n },\n allowSelection: true,\n selectedItem: selectedItems.length > 0 ? selectedItems[0] : undefined,\n horizontalPosition: \"center\"\n });\n return newAction;\n }\n\n private createRequiredAction() {\n (<Question>this.surveyElement).isRequired;\n const requiredAction = new Action({\n id: \"isrequired\",\n ariaChecked: <any>new ComputedUpdater<boolean>(() => this.isRequired),\n ariaRole: \"checkbox\",\n css: this.isRequired ? \"sv-action-bar-item--secondary\" : \"\",\n title: this.creator.getLocString(\"pe.isRequired\"),\n visibleIndex: 20,\n iconName: this.isRequired ? \"icon-switch-active_16x16\" : \"icon-switch-inactive_16x16\",\n iconSize: 16,\n action: () => {\n if (\n this.creator.isCanModifyProperty(\n <any>this.surveyElement,\n \"isRequired\"\n )\n ) {\n this.isRequired = !this.isRequired;\n }\n }\n });\n this.surveyElement.registerFunctionOnPropertyValueChanged(\n \"isRequired\",\n () => {\n requiredAction.iconName = this.isRequired ? \"icon-switch-active_16x16\" : \"icon-switch-inactive_16x16\";\n requiredAction.css = this.isRequired ? \"sv-action-bar-item--secondary\" : \"\";\n },\n \"isRequiredAdorner\"\n );\n return requiredAction;\n }\n\n protected buildActions(items: Array<Action>) {\n super.buildActions(items);\n let element = this.surveyElement;\n items.push(this.createConverToAction());\n if (\n typeof element[\"isRequired\"] !== \"undefined\" &&\n propertyExists(element, \"isRequired\") &&\n isPropertyVisible(element, \"isRequired\")\n ) {\n items.push(this.createRequiredAction());\n }\n }\n protected duplicate() {\n setTimeout(()=>{\n var newElement = this.creator.fastCopyQuestion(this.surveyElement);\n this.creator.selectElement(newElement);\n }, 1);\n }\n addNewQuestion(): void {\n this.creator.addNewQuestionInPage((type) => { }, this.surveyElement instanceof PanelModelBase ? this.surveyElement : null,\n this.currentAddQuestionType || settings.designer.defaultAddQuestionType);\n }\n questionTypeSelectorModel = this.creator.getQuestionTypeSelectorModel(\n (type) => {\n this.currentAddQuestionType = type;\n },\n this.surveyElement instanceof PanelModelBase ? this.surveyElement : null\n );\n public get addNewQuestionText(): string {\n if (!this.currentAddQuestionType && this.creator)\n return this.creator.getLocString(\"ed.addNewQuestion\");\n return !!this.creator ? this.creator.getAddNewQuestionText(this.currentAddQuestionType) : \"\";\n }\n}\n","// extracted by mini-css-extract-plugin","import { editorLocalization } from \"../editorLocalization\";\nimport * as Survey from \"survey-core\";\nimport { Base, property, propertyArray } from \"survey-core\";\n\nrequire(\"./results.scss\");\n\nexport class SurveyResultsItemModel extends Base {\n @property({ defaultValue: true }) collapsed: boolean;\n @property({ defaultValue: 0 }) lvl: number;\n @property() items: Array<any>;\n\n constructor(private _data: any, private _lvl: number) {\n super();\n this.items = addCollapsed(_data.data, _lvl + 1);\n this.lvl = _lvl;\n }\n\n get data(): Array<any> {\n return this.items;\n }\n\n public toggle = () => {\n this.collapsed = !this.collapsed;\n }\n public get isNode(): boolean {\n return this._data.isNode;\n }\n public get name(): boolean {\n return this._data.name;\n }\n public get title(): string {\n return this._data.title;\n }\n public get value(): any {\n return this._data.value;\n }\n public get displayValue(): string {\n return this._data.displayValue;\n }\n public getString(data: any): string {\n return this._data.getString(data);\n }\n\n private markerWidth: number = 16\n public get markerMargin(): string {\n return (1.5 + this.lvl) * this.markerWidth + \"px\";\n }\n public get textMargin(): string {\n return (2.75 + this.lvl) * this.markerWidth + \"px\";\n }\n}\n\nfunction addCollapsed(items: any[] = [], initLvl: number) {\n return items.filter((item) => !!item).map((item: any) => {\n return new SurveyResultsItemModel(item, initLvl);\n });\n}\n\nexport class SurveyResultsModel extends Base {\n constructor(private survey: Survey.SurveyModel) {\n super();\n this.resultText = JSON.stringify(survey.data, null, 4);\n var plainData = survey.getPlainData({ includeEmpty: false, includeValues: true });\n this.resultData = addCollapsed(plainData, 0);\n }\n\n @property({ defaultValue: \"table\" }) resultViewType: string;\n @property({ defaultValue: \"\" }) resultText: string;\n @propertyArray() resultData: Array<any>;\n\n public getLocString(name: string) {\n return editorLocalization.getString(name);\n }\n public get surveyResultsText() {\n return this.getLocString(\"ed.surveyResults\");\n }\n public get surveyResultsTableText() {\n return this.getLocString(\"ed.surveyResultsTable\");\n }\n public get surveyResultsJsonText() {\n return this.getLocString(\"ed.surveyResultsJson\");\n }\n public get resultsTitle() {\n return this.getLocString(\"ed.resultsTitle\");\n }\n public get resultsName() {\n return this.getLocString(\"ed.resultsName\");\n }\n public get resultsValue() {\n return this.getLocString(\"ed.resultsValue\");\n }\n public get resultsDisplayValue() {\n return this.getLocString(\"ed.resultsDisplayValue\");\n }\n public get isTableSelected() {\n return this.resultViewType === \"table\";\n }\n public get isJsonSelected() {\n return this.resultViewType === \"text\";\n }\n\n public selectTableClick = () => {\n this.resultViewType = \"table\";\n }\n public selectJsonClick = () => {\n this.resultViewType = \"text\";\n }\n}\n","// extracted by mini-css-extract-plugin","import {\n Base,\n SurveyModel,\n SurveyTemplateRendererTemplateData,\n QuestionRowModel\n} from \"survey-core\";\nimport { CreatorBase } from \"../creator-base\";\nrequire(\"./row.scss\");\n\nexport class RowViewModel extends Base {\n constructor(\n public creator: CreatorBase,\n public row: QuestionRowModel,\n public templateData: SurveyTemplateRendererTemplateData\n ) {\n super();\n }\n\n public get cssClasses() {\n let result = \"svc-row\";\n let ghostClass = \" svc-row--ghost\";\n\n if (\n this.row.elements.length === 1 &&\n this.row.elements[0].name === \"sv-drag-drop-ghost-survey-element-name\"\n ) {\n result += ghostClass;\n } else {\n result = result.replace(ghostClass, \"\");\n }\n\n return result;\n }\n}\n","import { Base, property, AdaptiveActionContainer, Action, ComputedUpdater, propertyArray } from \"survey-core\";\nimport { settings } from \"../../creator-settings\";\nimport { getLocString } from \"../../editorLocalization\";\nimport { CreatorBase } from \"../../creator-base\";\nimport { SidebarTabModel } from \"./side-bar-tab-model\";\nimport { ResizeManager } from \"../../utils/resizer\";\nimport { notShortCircuitAnd } from \"../../utils/utils\";\n\nexport class SidebarModel extends Base {\n public toolbar: AdaptiveActionContainer = new AdaptiveActionContainer();\n private _expandAction: Action;\n private _collapseAction: Action;\n private _activeTab: SidebarTabModel;\n private onSidebarVisibilityChanged;\n private resizeManager: ResizeManager;\n\n @propertyArray() tabs: Array<SidebarTabModel>;\n @property() headerText: string;\n @property({ defaultValue: true }) visible: boolean;\n @property({ defaultValue: false }) collapsedManually: boolean;\n @property({ defaultValue: false }) expandedManually: boolean;\n @property() hasVisibleTabs: boolean;\n @property({ defaultValue: false }) flyoutMode: boolean;\n @property({\n onSet: (val, target: SidebarModel) => {\n target.tabs.forEach(tab => tab.visible = false);\n target._activeTab = target.tabs.filter(tab => tab.id === val)[0];\n if (target._activeTab) {\n target.headerText = target._activeTab.caption;\n target._activeTab.visible = true;\n }\n }\n }) activeTab: string;\n\n public get flyoutPanelMode(): boolean {\n return this.visible && this.flyoutMode;\n }\n\n public get closeText(): string {\n return getLocString(\"pe.close\");\n }\n public getTabById(id: string) {\n return this.tabs.filter(tab => tab.id === id)[0];\n }\n\n private createActions() {\n this._collapseAction = new Action({\n id: \"svd-grid-hide\",\n iconName: \"icon-collapse-panel\",\n css: \"svd-grid-hide\",\n locTitleName: \"ed.hidePanel\",\n showTitle: false,\n visible: <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(\n !notShortCircuitAnd(!this.creator.allowCollapseSidebar, !this.flyoutMode),\n this.visible);\n }),\n action: () => {\n this.collapseSidebar();\n if (!this.flyoutMode) {\n this.collapsedManually = true;\n this.expandedManually = false;\n }\n else {\n this.creator.focusElement(this.creator.selectedElement, true);\n }\n }\n });\n this.toolbar.actions.push(this._collapseAction);\n if (this.creator.allowCollapseSidebar) {\n this._expandAction = new Action({\n id: \"svd-grid-expand\",\n iconName: \"icon-expand-panel\",\n css: \"svd-grid-expand\",\n needSeparator: true,\n action: () => {\n this.expandSidebar();\n if (!this.flyoutMode) {\n this.collapsedManually = false;\n this.expandedManually = this.flyoutMode;\n }\n },\n locTitleName: \"ed.showPanel\",\n visible: <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(this.hasVisibleTabs, !this.visible);\n }),\n showTitle: false\n });\n }\n }\n private getCurrentHandles(): string {\n return this.creator.sidebarLocation == \"right\" ? \"w\" : \"e\";\n }\n\n constructor(private creator: CreatorBase) {\n super();\n this.onSidebarVisibilityChanged = (sender: CreatorBase, options: any) => {\n if (this.isDisposed) return;\n this.visible = options.show;\n };\n this.creator.onShowSidebarVisibilityChanged.add(this.onSidebarVisibilityChanged);\n this.creator.onPropertyChanged.add((sender, options) => {\n if (options.name === \"sidebarLocation\" && !!this.resizeManager) {\n this.resizeManager.setHandles(this.getCurrentHandles());\n }\n });\n this.visible = this.creator.showSidebar;\n this.createActions();\n }\n\n public getExpandAction() {\n return this._expandAction;\n }\n public collapseSidebar() {\n this.creator.setShowSidebar(false);\n }\n public expandSidebar() {\n this.creator.setShowSidebar(true);\n }\n public addTab(id: string, componentName?: string, model?: any, buildActions?: () => Array<Action>): SidebarTabModel {\n const tab = new SidebarTabModel(id, this, componentName, model);\n this.tabs.push(tab);\n if (!!buildActions) {\n (buildActions() || []).forEach(action => this.toolbar.actions.push(action));\n }\n return tab;\n }\n public updateHasVisibleTabs() {\n this.hasVisibleTabs = (this.tabs || []).filter(tab => tab.visible).length > 0;\n }\n public dispose() {\n if (!!this.creator && !this.isDisposed) {\n this.creator.onShowSidebarVisibilityChanged.remove(this.onSidebarVisibilityChanged);\n }\n super.dispose();\n }\n public initResizeManager(container: HTMLDivElement): void {\n this.resizeManager = new ResizeManager(container, this.getCurrentHandles());\n }\n public resetResizeManager(): void {\n if (!!this.resizeManager) {\n this.resizeManager.dispose();\n this.resizeManager = undefined;\n }\n }\n}","import { Base, property } from \"survey-core\";\nimport { SidebarModel } from \"./side-bar-model\";\n\nexport class SidebarTabModel extends Base {\n @property({\n onSet: (newVal, target: SidebarTabModel) => {\n target.sidePanel.headerText = target.caption;\n }\n }) caption: string;\n @property({\n onSet: (newVal, target: SidebarTabModel) => {\n target.sidePanel.updateHasVisibleTabs();\n }\n }) visible: boolean;\n @property() model: any;\n @property() componentName: string;\n\n constructor(public id: string, public sidePanel: SidebarModel, componentName?: string, model?: any,) {\n super();\n !!componentName && (this.componentName = componentName);\n !!model && (this.model = model);\n }\n}","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","import { Base, CssClassBuilder, property, SurveyModel } from \"survey-core\";\n\nrequire(\"./simulator.scss\");\n\nexport class SurveySimulatorModel extends Base {\n constructor() {\n super();\n // if (!!_toolbarHolder) {\n // this.simulatorOptions.survey = this._toolbarHolder.koSurvey;\n // ko.computed(() => {\n // this.simulatorEnabled = _toolbarHolder.showSimulator();\n // });\n // _toolbarHolder.toolbarItems.push({\n // id: \"svd-test-simulator\",\n // title: getLocString(\"pe.simulator\"),\n // visible: ko.computed(() => this.simulatorEnabled),\n // tooltip: getLocString(\"pe.simulator\"),\n // component: \"svd-dropdown\",\n // action: ko.computed({\n // read: () => this.activeDevice,\n // write: (val: any) => (this.activeDevice = val),\n // }),\n // items: <any>this.koDevices,\n // });\n // _toolbarHolder.toolbarItems.push({\n // id: \"svd-test-simulator-orientation\",\n // title: getLocString(\"pe.landscapeOrientation\"),\n // visible: this.koHasFrame,\n // tooltip: getLocString(\"pe.landscapeOrientation\"),\n // component: \"svd-boolean\",\n // action: ko.computed({\n // read: () => this.landscapeOrientation,\n // write: (val: any) => (this.landscapeOrientation = val),\n // }),\n // });\n // }\n }\n\n @property({ defaultValue: true }) landscape: boolean;\n @property() survey: SurveyModel;\n @property({ defaultValue: \"desktop\" }) device: string;\n @property({ defaultValue: \"l\" }) orientation: string;\n @property({ defaultValue: true }) considerDPI: boolean;\n @property({ defaultValue: true }) isRunning: boolean;\n @property({ defaultValue: true }) simulatorEnabled: boolean;\n @property({ defaultValue: true }) simulatorScaleEnabled: boolean;\n\n private currZoomScale: number;\n public get zoomScale(): number {\n return this.currZoomScale;\n }\n public activateZoom = () => {\n document.addEventListener(\"keydown\", this.listenTryToZoom);\n document.addEventListener(\"wheel\", this.listenTryToZoomWithWheel, { passive: false });\n }\n public deactivateZoom = () => {\n document.removeEventListener(\"keydown\", this.listenTryToZoom);\n document.removeEventListener(\"wheel\", this.listenTryToZoomWithWheel);\n }\n private listenTryToZoomWithWheel = e => this.tryToZoomWithWheel(e, e);\n private tryToZoomWithWheel(data: any, event: any) {\n const diff: number = event.deltaY;\n if (event.ctrlKey || event.metaKey) {\n diff < 0 ? this.zoomSimulator(\"up\", event) : this.zoomSimulator(\"down\", event);\n }\n return true;\n }\n private listenTryToZoom = e => this.tryToZoom(e, e);\n public tryToZoom(data: any, event: any) {\n if (event.ctrlKey || event.metaKey) {\n if (event.keyCode == 107 || event.keyCode == 187) {\n this.zoomSimulator(\"up\", event);\n }\n if (event.keyCode == 109 || event.keyCode == 189) {\n this.zoomSimulator(\"down\", event);\n }\n if (event.keyCode == 48 || event.keyCode == 96) {\n this.zoomSimulator(\"zero\", event);\n }\n }\n return true;\n }\n private changeZoomScale(type: \"up\" | \"down\" | \"zero\") {\n const coef: number = 1.01;\n const multiplier: number = type === \"up\" ? coef : (type === \"down\" ? 1 / coef : 1);\n this.currZoomScale = type === \"zero\" ? 1 : this.currZoomScale * multiplier;\n }\n private zoomSimulator(type: \"up\" | \"down\" | \"zero\", event: any) {\n event.preventDefault();\n\n this.changeZoomScale(type);\n\n const simulator = document.getElementById(\"svd-simulator-wrapper\");\n if (!!simulator) simulator.style.transform = \"scale(\" + this.currZoomScale + \")\";\n\n event.stopPropagation();\n }\n public resetZoomParameters(): void {\n this.currZoomScale = 1;\n const simulator = document.getElementById(\"svd-simulator-wrapper\");\n if (!!simulator) simulator.style.transform = \"\";\n }\n\n public get activeDevice(): string {\n return this.device;\n }\n public set activeDevice(device: string) {\n this.device = device;\n }\n\n get landscapeOrientation(): boolean {\n return this.landscape;\n }\n // set landscapeOrientation(isLanscape: boolean) {\n // this.landscape = isLanscape;\n // }\n\n public get hasFrame(): boolean {\n var device = simulatorDevices[this.activeDevice];\n return this.simulatorEnabled && device.deviceType !== \"desktop\";\n }\n\n public get simulatorFrame() {\n if (!this.hasFrame) {\n return undefined;\n }\n const device = simulatorDevices[this.activeDevice];\n const scale = 1;//DEFAULT_MONITOR_DPI / device.ppi;\n\n const deviceWidth = (this.landscapeOrientation ? device.height : device.width) / device.cssPixelRatio;\n const deviceHeight = (this.landscapeOrientation ? device.width : device.height) / device.cssPixelRatio;\n const deviceLandscapedFrameWidth = (this.landscapeOrientation ? device.frameHeight : device.frameWidth) / device.cssPixelRatio;\n const deviceLandscapedFrameHeight = (this.landscapeOrientation ? device.frameWidth : device.frameHeight) / device.cssPixelRatio;\n const frameWidth = deviceLandscapedFrameWidth * scale;\n const frameHeight = deviceLandscapedFrameHeight * scale;\n\n return {\n scale: this.simulatorScaleEnabled ? scale /* * device.cssPixelRatio */ : 1,\n frameWidth: frameWidth,\n frameHeight: frameHeight,\n landscapedFrameWidth: this.landscapeOrientation ? frameHeight : frameWidth,\n landscapedFrameHeight: this.landscapeOrientation ? frameWidth : frameHeight,\n deviceWidth: deviceWidth,\n deviceHeight: deviceHeight,\n cssClass:\n device.cssClass +\n (this.landscapeOrientation ? \" svd-simulator-frame-landscape\" : \"\"),\n };\n }\n public getRootCss(): string {\n return new CssClassBuilder()\n .append(\"svd-simulator-main\")\n .append(\"svd-simulator-main--frame\", this.hasFrame)\n .append(\"svd-simulator-main--desktop\", this.device === \"desktop\")\n .append(\"svd-simulator-main--running\", this.isRunning)\n .toString();\n }\n}\n\nexport var DEFAULT_MONITOR_DPI = (typeof window !== \"undefined\" ? window.devicePixelRatio : 1) * 96;\nexport var simulatorDevices = {\n desktop: {\n deviceType: \"desktop\",\n title: \"Desktop\",\n },\n // desktop_1280x720: {\n // cssPixelRatio: 1,\n // ppi: DEFAULT_MONITOR_DPI,\n // width: 720,\n // height: 1280,\n // deviceType: \"desktop\",\n // title: \"Desktop 1280x720\"\n // },\n // desktop_1440x900: {\n // cssPixelRatio: 1,\n // ppi: DEFAULT_MONITOR_DPI,\n // width: 900,\n // height: 1440,\n // deviceType: \"desktop\",\n // title: \"Desktop 1440x900\"\n // },\n // desktop_1920x1080: {\n // cssPixelRatio: 1,\n // ppi: DEFAULT_MONITOR_DPI,\n // width: 1080,\n // height: 1920,\n // deviceType: \"desktop\",\n // title: \"Desktop 1920x1080\"\n // },\n // iPhone: {\n // cssPixelRatio: 2,\n // ppi: 326,\n // width: 640,\n // height: 960,\n // frameWidth: 730,\n // frameHeight: 1340,\n // deviceType: \"phone\",\n // title: \"iPhone\",\n // cssClass: \"svd-simulator-iphone4\"\n // },\n // iPhone5: {\n // cssPixelRatio: 2,\n // ppi: 326,\n // width: 640,\n // height: 1136,\n // frameWidth: 750,\n // frameHeight: 1500,\n // deviceType: \"phone\",\n // title: \"iPhone 5\",\n // cssClass: \"svd-simulator-iphone5\",\n // },\n iPhone6: {\n cssPixelRatio: 2,\n ppi: 326,\n width: 750,\n height: 1334,\n frameWidth: 960,\n frameHeight: 1750,\n deviceType: \"phone\",\n title: \"iPhone 6\",\n cssClass: \"svd-simulator-iphone6\",\n },\n iPhone6plus: {\n cssPixelRatio: 2.6,\n ppi: 401,\n width: 1080,\n height: 1920,\n frameWidth: 1330,\n frameHeight: 2550,\n deviceType: \"phone\",\n title: \"iPhone 6 Plus\",\n cssClass: \"svd-simulator-iphone6plus\",\n },\n iPhone8: {\n cssPixelRatio: 2,\n ppi: 326,\n width: 750,\n height: 1334,\n frameWidth: 990,\n frameHeight: 1860,\n deviceType: \"phone\",\n title: \"iPhone 8\",\n cssClass: \"svd-simulator-iphone8\",\n },\n iPhone8plus: {\n cssPixelRatio: 3,\n ppi: 401,\n width: 1080,\n height: 1920,\n frameWidth: 1330,\n frameHeight: 2550,\n deviceType: \"phone\",\n title: \"iPhone 8 Plus\",\n cssClass: \"svd-simulator-iphone8plus\",\n },\n iPhoneX: {\n cssPixelRatio: 3,\n ppi: 458,\n width: 1125,\n height: 2436,\n frameWidth: 1330,\n frameHeight: 2680,\n deviceType: \"phone\",\n title: \"iPhone X\",\n cssClass: \"svd-simulator-iphonex\",\n },\n iPhoneXmax: {\n cssPixelRatio: 3,\n ppi: 458,\n width: 1242,\n height: 2688,\n frameWidth: 1410,\n frameHeight: 2980,\n deviceType: \"phone\",\n title: \"iPhone X Max\",\n cssClass: \"svd-simulator-iphonexmax\",\n },\n iPad: {\n cssPixelRatio: 2,\n ppi: 264,\n width: 1536,\n height: 2048,\n frameWidth: 1837,\n frameHeight: 2563,\n deviceType: \"tablet\",\n title: \"iPad\",\n cssClass: \"svd-simulator-ipad\",\n },\n iPadMini: {\n cssPixelRatio: 2,\n ppi: 326,\n width: 1536,\n height: 2048,\n frameWidth: 1890,\n frameHeight: 2600,\n deviceType: \"tablet\",\n title: \"iPad Mini\",\n cssClass: \"svd-simulator-ipadmini\",\n },\n iPadPro: {\n cssPixelRatio: 2,\n ppi: 264,\n width: 1688,\n height: 2388,\n frameWidth: 2008,\n frameHeight: 2980,\n deviceType: \"tablet\",\n title: 'iPad Pro 11\"',\n cssClass: \"svd-simulator-ipadpro\",\n },\n iPadPro13: {\n cssPixelRatio: 2,\n ppi: 264,\n width: 2048,\n height: 2732,\n frameWidth: 2360,\n frameHeight: 3300,\n deviceType: \"tablet\",\n title: 'iPad Pro 12,9\"',\n cssClass: \"svd-simulator-ipadpro13\",\n },\n androidPhone: {\n cssPixelRatio: 2,\n ppi: 316,\n width: 720,\n height: 1280,\n frameWidth: 850,\n frameHeight: 1630,\n deviceType: \"phone\",\n title: \"Android Phone\",\n cssClass: \"svd-simulator-androidphone\",\n },\n androidTablet: {\n cssPixelRatio: 1.5,\n ppi: 149,\n width: 800,\n height: 1280,\n frameWidth: 1070,\n frameHeight: 1480,\n deviceType: \"tablet\",\n title: \"Android Tablet\",\n cssClass: \"svd-simulator-androidtablet\",\n },\n win10Phone: {\n cssPixelRatio: 2,\n ppi: 294,\n width: 720,\n height: 1280,\n frameWidth: 1152,\n frameHeight: 2030,\n deviceType: \"phone\",\n title: \"Windows 10 Phone\",\n cssClass: \"svd-simulator-win10phone\",\n },\n msSurface: {\n cssPixelRatio: 1,\n ppi: 148,\n width: 768,\n height: 1366,\n frameWidth: 1040,\n frameHeight: 1620,\n deviceType: \"tablet\",\n title: \"MS Surface\",\n cssClass: \"svd-simulator-mssurface\",\n },\n genericPhone: {\n cssPixelRatio: 1,\n deviceType: \"phone\",\n title: \"\",\n cssClass: \"svd-simulator-genphone\",\n },\n};\n","// extracted by mini-css-extract-plugin","import { Base, LocalizableString, Serializer, JsonObjectProperty, property, ItemValue, ComputedUpdater, sanitizeEditableContent, Event as SurveyEvent, Question, QuestionMultipleTextModel, MultipleTextItemModel, QuestionMatrixBaseModel, QuestionMatrixModel, QuestionMatrixDropdownModel, MatrixDropdownColumn, QuestionMatrixDynamicModel, QuestionSelectBase, QuestionImagePickerModel, EventBase, CharacterCounter } from \"survey-core\";\nimport { CreatorBase } from \"../creator-base\";\nimport { editorLocalization } from \"../editorLocalization\";\nimport { clearNewLines, getNextValue, select } from \"../utils/utils\";\nimport { ItemValueWrapperViewModel } from \"./item-value\";\nimport { QuestionAdornerViewModel } from \"./question\";\nimport { QuestionRatingAdornerViewModel } from \"./question-rating\";\n\nexport abstract class StringItemsNavigatorBase {\n constructor(protected question: any) { }\n protected abstract getItemLocString(items: any, item: any): LocalizableString;\n protected abstract getItemSets(): Array<any>;\n protected abstract addNewItem(items: any, text?: string): void;\n protected abstract getItemsPropertyName(items: any): string;\n private static createItemsNavigator(question: any): StringItemsNavigatorBase {\n if (question instanceof QuestionImagePickerModel) return null;\n if (question instanceof QuestionMultipleTextModel) return new StringItemsNavigatorMultipleText(question);\n if (question instanceof QuestionMatrixDropdownModel) return new StringItemsNavigatorMatrixDropdown(question);\n if (question instanceof QuestionMatrixDynamicModel) return new StringItemsNavigatorMatrixDynamic(question);\n if (question instanceof QuestionMatrixModel) return new StringItemsNavigatorMatrix(question);\n if (question instanceof QuestionSelectBase) return new StringItemsNavigatorSelectBase(question);\n return null;\n }\n\n protected addNewItems(items: any, startIndex: number, itemsToAdd: string[]) {\n let newItems = items.slice(0, startIndex).concat(itemsToAdd.map(text => new ItemValue(text))).concat(items.slice(startIndex + 1));\n this.question[this.getItemsPropertyName(items)] = newItems;\n }\n private setEventsForItem(items: any[], item: any) {\n const connector = StringEditorConnector.get(this.getItemLocString(items, item));\n connector.onEditComplete.clear();\n connector.onEditComplete.add(() => {\n const itemIndex = items.indexOf(item);\n if (itemIndex >= 0 && itemIndex < items.length - 1) {\n StringEditorConnector.get(this.getItemLocString(items, items[itemIndex + 1])).activateEditor();\n }\n if (itemIndex == items.length - 1) {\n this.addNewItem(items);\n StringEditorConnector.get(this.getItemLocString(items, items[items.length - 1])).setAutoFocus();\n StringEditorConnector.get(this.getItemLocString(items, items[items.length - 1])).activateEditor();\n }\n });\n\n connector.onBackspaceEmptyString.clear();\n connector.onBackspaceEmptyString.add(() => {\n const itemIndex = items.indexOf(item);\n let itemToFocus: MultipleTextItemModel = null;\n if (itemIndex !== -1) {\n if (itemIndex == 0 && items.length >= 2) itemToFocus = items[1];\n if (itemIndex > 0) itemToFocus = items[itemIndex - 1];\n if (itemToFocus) {\n const connector = StringEditorConnector.get(this.getItemLocString(items, itemToFocus));\n connector.setAutoFocus();\n connector.activateEditor();\n }\n items.splice(itemIndex, 1);\n }\n });\n\n connector.onTextChanging.clear();\n connector.onTextChanging.add((sender, options) => {\n let lines = options.value.split(/\\r?\\n/).filter(line => !!line);\n if (lines.length <= 1) return;\n options.cancel = true;\n const itemIndex = items.indexOf(item);\n this.addNewItems(items, itemIndex, lines);\n let focusedItemIndex = itemIndex + lines.length;\n if (focusedItemIndex >= items.length) focusedItemIndex = items.length - 1;\n StringEditorConnector.get(this.getItemLocString(items, items[focusedItemIndex])).setAutoFocus();\n StringEditorConnector.get(this.getItemLocString(items, items[focusedItemIndex])).activateEditor();\n });\n }\n\n public static setQuestion(questionAdorner: QuestionAdornerViewModel): boolean {\n const question = questionAdorner.element as Question;\n const navigator = StringItemsNavigatorBase.createItemsNavigator(question);\n if (navigator) {\n const titleConnector: StringEditorConnector = StringEditorConnector.get(question.locTitle);\n let allItemSets = navigator.getItemSets();\n let activeChoices = allItemSets[0];\n if (!titleConnector.hasEditCompleteHandler) {\n titleConnector.onEditComplete.add(() => {\n if (activeChoices.length) StringEditorConnector.get(navigator.getItemLocString(activeChoices, activeChoices[0])).activateEditor();\n });\n titleConnector.hasEditCompleteHandler = true;\n }\n allItemSets.forEach((activeChoices) => {\n activeChoices.forEach(item => {\n navigator.setEventsForItem(activeChoices, item);\n });\n const itemsPropertyName = navigator.getItemsPropertyName(activeChoices);\n question.onPropertyChanged.add((sender: any, options: any) => {\n if (options.name == itemsPropertyName) {\n activeChoices.forEach(item => {\n navigator.setEventsForItem(activeChoices, item);\n });\n }\n });\n });\n }\n return !!navigator;\n }\n}\n\nclass StringItemsNavigatorSelectBase extends StringItemsNavigatorBase {\n protected getItemLocString(items: any, item: any) {\n return item.locText;\n }\n protected getItemSets() {\n return [this.question.choices];\n }\n protected addNewItem(items: any, text: string = null) {\n this.question.choices.push(new ItemValue(text || getNextValue(\"item\", items.map(i => i.value)) as string));\n }\n protected getItemsPropertyName(items: any) {\n return \"choices\";\n }\n}\n\nclass StringItemsNavigatorMultipleText extends StringItemsNavigatorBase {\n protected getItemLocString(items: any, item: any) {\n return item.locTitle;\n }\n protected getItemSets() {\n return [this.question.items];\n }\n protected addNewItem(items: any, text: string = null) {\n this.question.addItem(text || getNextValue(\"text\", items.map(i => i.name)) as string);\n }\n protected getItemsPropertyName(items: any) {\n return \"items\";\n }\n protected addNewItems(items: any, startIndex: number, itemsToAdd: string[]) {\n let newItems = items.slice(0, startIndex).concat(itemsToAdd.map(text => new MultipleTextItemModel(text))).concat(items.slice(startIndex + 1));\n this.question[this.getItemsPropertyName(items)] = newItems;\n }\n}\nclass StringItemsNavigatorMatrix extends StringItemsNavigatorBase {\n protected getItemLocString(items: any, item: any) {\n return item.locText;\n }\n protected getItemSets() {\n return [this.question.columns, this.question.rows];\n }\n protected addNewItem(items: any, text: string = null) {\n if (items == this.question.columns) this.question.addColumn(text || getNextValue(\"Column \", items.map(i => i.value)) as string);\n if (items == this.question.rows) this.question.rows.push(text || new ItemValue(getNextValue(\"Row \", items.map(i => i.value)) as string));\n }\n protected getItemsPropertyName(items: any) {\n if (items == this.question.columns) return \"columns\";\n if (items == this.question.rows) return \"rows\";\n }\n}\nclass StringItemsNavigatorMatrixDropdown extends StringItemsNavigatorMatrix {\n protected getItemLocString(items: any, item: any) {\n if (items == this.question.columns) return item.locTitle;\n return item.locText;\n }\n protected addNewItems(items: any, startIndex: number, itemsToAdd: string[]) {\n if (items == this.question.columns) {\n let newItems = items.slice(0, startIndex).concat(itemsToAdd.map(text => new MatrixDropdownColumn(text))).concat(items.slice(startIndex + 1));\n this.question[this.getItemsPropertyName(items)] = newItems;\n }\n else {\n super.addNewItems(items, startIndex, itemsToAdd);\n }\n }\n}\nclass StringItemsNavigatorMatrixDynamic extends StringItemsNavigatorMatrixDropdown {\n protected getItemSets() {\n return [this.question.columns];\n }\n}\n\nexport class StringEditorConnector extends Base {\n public static get(locString: LocalizableString): StringEditorConnector {\n if (!locString[\"_stringEditorConnector\"]) locString[\"_stringEditorConnector\"] = new StringEditorConnector(locString);\n return locString[\"_stringEditorConnector\"];\n }\n public setAutoFocus() { this.focusOnEditor = true; }\n\n public hasEditCompleteHandler = false;\n\n public focusOnEditor: boolean;\n public activateEditor(): void {\n this.onDoActivate.fire(this.locString, {});\n }\n public onDoActivate: EventBase<LocalizableString, any> = new EventBase<LocalizableString, any>();\n public onTextChanging: EventBase<StringEditorViewModelBase, any> = new EventBase<StringEditorViewModelBase, any>();\n public onEditComplete: EventBase<StringEditorViewModelBase, any> = new EventBase<StringEditorViewModelBase, any>();\n public onBackspaceEmptyString: EventBase<StringEditorViewModelBase, any> = new EventBase<StringEditorViewModelBase, any>();\n constructor(private locString: LocalizableString) {\n super();\n }\n}\nexport class StringEditorViewModelBase extends Base {\n\n private blurredByEscape: boolean = false;\n private focusedProgram: boolean = false;\n private valueBeforeEdit: string;\n private connector: StringEditorConnector\n\n public getEditorElement: () => HTMLElement;\n public characterCounter = new CharacterCounter();\n\n @property() errorText: string;\n @property() focused: boolean;\n @property({ defaultValue: true }) editAsText: boolean;\n compostionInProgress: boolean;\n\n constructor(private locString: LocalizableString, private creator: CreatorBase) {\n super();\n this.connector = StringEditorConnector.get(locString);\n this.connector.onDoActivate.add(() => { this.activate(); });\n this.checkMarkdownToTextConversion(this.locString.owner, this.locString.name);\n }\n\n public afterRender() {\n if (this.connector.focusOnEditor) {\n if (this.activate()) this.connector.focusOnEditor = false;\n }\n }\n\n public activate() {\n const element = this.getEditorElement();\n if (element && element.offsetParent != null) {\n element.focus();\n select(element);\n return true;\n }\n return false;\n }\n\n public setLocString(locString: LocalizableString) {\n this.locString = locString;\n this.connector = StringEditorConnector.get(locString);\n this.connector.onDoActivate.add(() => { this.activate(); });\n }\n public checkConstraints(event: any) {\n if (this.maxLength > 0 && event.keyCode >= 32) {\n var text: string = (event.target as any).innerText || \"\";\n\n if (text.length >= this.maxLength) {\n event.preventDefault();\n }\n }\n if (event.ctrlKey || event.metaKey) {\n if ([89, 90].indexOf(event.keyCode) !== -1) {\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n }\n }\n\n public blurEditor: () => void;\n\n public onClick(event: any) {\n event.stopPropagation();\n }\n\n public onFocus(event: any): void {\n if (!this.focusedProgram) {\n this.valueBeforeEdit = this.locString.hasHtml ? event.target.innerHTML : event.target.innerText;\n this.focusedProgram = false;\n }\n if (this.maxLength > 0) {\n this.characterCounter.updateRemainingCharacterCounter(this.valueBeforeEdit, this.maxLength);\n }\n this.creator.selectFromStringEditor = true;\n event.target.parentElement.click();\n event.target.spellcheck = true;\n event.target.setAttribute(\"tabindex\", -1);\n this.focused = true;\n this.justFocused = true;\n }\n\n private checkMarkdownToTextConversion(element, name) {\n var options = {\n element: element,\n text: <any>null,\n name: name,\n html: \"\",\n };\n if (this.creator) {\n this.creator.onHtmlToMarkdown.fire(this.creator, options);\n this.editAsText = (options.text === null);\n }\n }\n\n public onCompositionStart(event: any): void {\n this.compostionInProgress = true;\n }\n\n public onInput(event: any): void {\n if (this.maxLength > 0) {\n var text: string = (event.target as any).innerText || \"\";\n this.characterCounter.updateRemainingCharacterCounter(text, this.maxLength);\n }\n if (this.editAsText && !this.compostionInProgress) {\n const options = { value: event.target?.innerText, cancel: null };\n this.connector.onTextChanging.fire(this, options);\n if (options.cancel) return;\n sanitizeEditableContent(event.target);\n if (this.maxLength >= 0 && event.target.innerText.length > this.maxLength) {\n event.target.innerText = event.target.innerText.substring(0, this.maxLength);\n }\n }\n }\n public onCompositionEnd(event: any): void {\n this.compostionInProgress = false;\n this.onInput(event);\n }\n\n public onBlur(event: any): void {\n event.target.removeAttribute(\"tabindex\");\n if (this.blurredByEscape) {\n this.blurredByEscape = false;\n if (this.locString.hasHtml) {\n event.target.innerHTML = this.valueBeforeEdit;\n }\n else {\n event.target.innerText = this.valueBeforeEdit;\n }\n this.errorText = null;\n this.focused = false;\n window?.getSelection().removeAllRanges();\n return;\n }\n\n let mdText = null;\n if (!this.editAsText) {\n var options = {\n element: this.locString.owner,\n text: <any>null,\n name: this.locString.name,\n html: event.target.innerHTML\n };\n this.creator.onHtmlToMarkdown.fire(this.creator, options);\n mdText = options.text;\n }\n let clearedText = mdText || clearNewLines(this.locString.hasHtml ? event.target.innerHTML : event.target.innerText);\n let owner = this.locString.owner as any;\n\n var changingOptions = {\n obj: owner,\n propertyName: this.locString.name,\n value: this.locString.text,\n newValue: clearedText,\n doValidation: false\n };\n this.creator.onValueChangingCallback(changingOptions);\n clearedText = changingOptions.newValue;\n\n this.errorText = this.creator.onGetErrorTextOnValidationCallback(this.locString.name, owner, clearedText);\n if (!this.errorText && !clearedText) {\n const propJSON = owner.getPropertyByName && owner.getPropertyByName(this.locString.name);\n if (propJSON && propJSON.isRequired) {\n this.errorText = editorLocalization.getString(\"pe.propertyIsEmpty\");\n }\n }\n\n if (this.locString.text != clearedText &&\n !(!this.locString.text && clearedText == this.locString.calculatedText)) {\n if (!this.errorText) {\n if (this.locString.owner instanceof ItemValue && this.creator.inplaceEditForValues) {\n this.locString.owner.value = clearedText;\n }\n else {\n const oldStoreDefaultText = this.locString.storeDefaultText;\n this.locString.storeDefaultText = false;\n this.locString.text = clearedText;\n this.locString.storeDefaultText = oldStoreDefaultText;\n }\n }\n else {\n this.focusedProgram = true;\n event.target.focus();\n }\n } else {\n if (this.locString.hasHtml) {\n event.target.innerHTML = this.locString.renderedHtml;\n }\n else {\n event.target.innerText = this.locString.renderedHtml;\n }\n this.locString.strChanged();\n }\n this.focused = false;\n window?.getSelection().removeAllRanges();\n }\n public done(event: Event): void {\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n public onKeyDown(event: KeyboardEvent): boolean {\n if (event.keyCode === 13) {\n this.blurEditor();\n if (!event.ctrlKey && !event.metaKey) {\n this.connector.onEditComplete.fire(this, {});\n }\n this.done(event);\n }\n if (event.keyCode === 27) {\n this.blurredByEscape = true;\n this.blurEditor();\n this.done(event);\n }\n if (event.keyCode === 8 && !(event.target as any).innerText) {\n this.done(event);\n this.connector.onBackspaceEmptyString.fire(this, {});\n }\n this.checkConstraints(event);\n return true;\n }\n public onKeyUp(event: KeyboardEvent): boolean {\n if (event.keyCode === 9 && event.target === document.activeElement) {\n select(event.target);\n }\n return true;\n }\n private justFocused = false;\n public onMouseUp(event: MouseEvent): boolean {\n if (this.justFocused) {\n this.justFocused = false;\n if (!window) return false;\n if (window.getSelection().focusNode && (window.getSelection().focusNode.parentElement !== event.target) || window.getSelection().toString().length == 0) {\n select(event.target);\n }\n return false;\n }\n return true;\n }\n public findProperty() {\n if (!(<any>this.locString.owner).getType) return undefined;\n const ownerType: string = (<any>this.locString.owner).getType();\n if (!this.locString.name) return undefined;\n const property: JsonObjectProperty = Serializer.findProperty(ownerType, this.locString.name);\n return property;\n }\n public get maxLength(): number {\n const property: JsonObjectProperty = this.findProperty();\n if (!property || property.maxLength <= 0) return -1;\n return property.maxLength;\n }\n @property() placeholderValue: string;\n public get placeholder(): string {\n if (!!this.placeholderValue) return this.placeholderValue;\n const property: any = this.findProperty();\n if (!property || !property.placeholder) return \"\";\n let placeholderValue: string = editorLocalization.getString(property.placeholder);\n if (!!placeholderValue) {\n var re = /\\{([^}]+)\\}/g;\n this.placeholderValue = <any>new ComputedUpdater<string>(() => {\n let result = placeholderValue;\n let match = re.exec(result);\n while (match != null) {\n result = result.replace(re, propertyName => {\n const propertyValue = this.locString.owner && this.locString.owner[match[1]];\n return \"\" + propertyValue;\n });\n match = re.exec(result);\n }\n return result;\n });\n }\n return this.placeholderValue;\n }\n public get contentEditable(): boolean {\n return this.creator.isCanModifyProperty(<any>this.locString.owner, this.locString.name);\n }\n public get showCharacterCounter(): boolean {\n return this.maxLength !== -1;\n }\n public get getCharacterCounterClass(): string {\n return \"svc-remaining-character-counter\";\n }\n\n public className(text: any): string {\n return \"svc-string-editor\" +\n (text == \"\" && this.placeholder == \"\" ? \" svc-string-editor--hidden\" : \"\") +\n (this.contentEditable ? \"\" : \" svc-string-editor--readonly\");\n }\n}","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","import { notShortCircuitAnd } from \"../../utils/utils\";\nimport { Base, SurveyModel, Action, ComputedUpdater } from \"survey-core\";\nimport { ICreatorPlugin, CreatorBase } from \"../../creator-base\";\nimport { PropertyGridModel } from \"../../property-grid\";\nimport { PropertyGridViewModel } from \"../../property-grid/property-grid-view-model\";\nimport { SidebarTabModel } from \"../side-bar/side-bar-tab-model\";\nimport { TabDesignerViewModel } from \"./designer\";\n\nexport class TabDesignerPlugin implements ICreatorPlugin {\n public model: TabDesignerViewModel;\n public propertyGrid: PropertyGridViewModel;\n private propertyGridTab: SidebarTabModel;\n private toolboxTab: SidebarTabModel;\n private surveySettingsAction: Action;\n private saveSurveyAction: Action;\n public previewAction: Action;\n\n private get isSurveySelected(): boolean {\n return this.creator.isElementSelected(<any>this.creator.survey);\n }\n private get isSettingsActive(): boolean {\n return this.creator.showSidebar && this.isSurveySelected;\n }\n private createVisibleUpdater() {\n return <any>new ComputedUpdater<boolean>(() => { return this.creator.activeTab === \"designer\"; });\n }\n private updatePropertyGridTabCaption() {\n this.propertyGridTab.caption = this.creator.isMobileView ? this.propertyGrid.selectedElementName : \"\";\n }\n\n constructor(private creator: CreatorBase) {\n creator.addPluginTab(\"designer\", this);\n const propertyGridModel = new PropertyGridModel(creator.survey as any as Base, creator);\n this.propertyGrid = new PropertyGridViewModel(propertyGridModel, creator);\n this.propertyGridTab = this.creator.sidebar.addTab(\"propertyGrid\", \"svc-property-grid\", this.propertyGrid, () => {\n const result = [];\n if (!!this.propertyGrid.prevSelectionAction) {\n this.propertyGrid.prevSelectionAction.visible = this.createVisibleUpdater();\n result.push(this.propertyGrid.prevSelectionAction);\n }\n if (!!this.propertyGrid.nextSelectionAction) {\n this.propertyGrid.nextSelectionAction.visible = this.createVisibleUpdater();\n result.push(this.propertyGrid.nextSelectionAction);\n }\n if (!!this.propertyGrid.objectSelectionAction) {\n this.propertyGrid.objectSelectionAction.visible = this.createVisibleUpdater();\n result.push(this.propertyGrid.objectSelectionAction);\n }\n return result;\n });\n this.toolboxTab = this.creator.sidebar.addTab(\"toolbox\", \"svc-toolbox\", creator);\n this.creator.onPropertyChanged.add((sender, options) => {\n if (options.name === \"isMobileView\") {\n this.updatePropertyGridTabCaption();\n }\n if (options.name === \"toolboxLocation\") {\n if (this.toolboxTab.visible && options.newVal !== \"sidebar\") {\n this.propertyGridTab.visible = true;\n }\n this.toolboxTab.visible = options.newVal === \"sidebar\";\n }\n });\n this.propertyGrid.onPropertyChanged.add((sender, options) => {\n if (options.name === \"selectedElementName\") {\n this.updatePropertyGridTabCaption();\n }\n });\n this.createActions().forEach(action => creator.toolbar.actions.push(action));\n creator.registerShortcut(\"delete\", {\n hotKey: {\n keyCode: 46,\n },\n macOsHotkey: {\n keyCode: 46,\n },\n execute: () => this.creator.deleteCurrentElement()\n });\n }\n public activate(): void {\n this.model = new TabDesignerViewModel(this.creator);\n this.creator.sidebar.activeTab = this.propertyGridTab.id;\n }\n public deactivate(): boolean {\n this.model = undefined;\n this.propertyGridTab.visible = false;\n return true;\n }\n public onDesignerSurveyPropertyChanged(obj: Base, propName: string): void {\n if (!!this.model) {\n this.model.onDesignerSurveyPropertyChanged(obj, propName);\n }\n }\n public update(): void {\n if (!this.model) return;\n this.model.initSurvey();\n }\n public createActions() {\n const items: Array<Action> = [];\n\n const toolboxAction = new Action({\n id: \"svd-toolbox\",\n iconName: \"icon-toolbox\",\n needSeparator: true,\n action: () => {\n if (!this.creator.showSidebar) {\n this.creator.setShowSidebar(true, true);\n }\n this.creator.sidebar.activeTab = \"toolbox\";\n },\n active: <any>new ComputedUpdater<boolean>(() => this.creator.sidebar.activeTab === \"toolbox\"),\n visible: <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(this.creator.activeTab === \"designer\", this.creator.showToolbox, this.creator.toolboxLocation === \"sidebar\");\n }),\n title: \"Toolbox\",\n showTitle: false\n });\n\n this.surveySettingsAction = new Action({\n id: \"svd-settings\",\n iconName: \"icon-settings\",\n needSeparator: <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(this.creator.toolboxLocation !== \"sidebar\", !this.creator.isMobileView);\n }),\n action: () => {\n this.selectSurvey();\n },\n active: <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(this.creator.sidebar.activeTab === this.propertyGridTab.id, this.isSurveySelected);\n }),\n pressed: <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(this.creator.sidebar.activeTab === this.propertyGridTab.id, this.isSurveySelected);\n }),\n visible: this.createVisibleUpdater(),\n locTitleName: \"ed.surveySettings\",\n locTooltipName: \"ed.surveySettingsTooltip\",\n showTitle: false\n });\n\n this.saveSurveyAction = new Action({\n id: \"svd-save\",\n iconName: \"icon-save\",\n action: () => this.creator.doSave(),\n active: false,\n enabled: false,\n visible: <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(this.creator.activeTab === \"designer\", this.creator.showSaveButton);\n }),\n locTitleName: \"ed.saveSurvey\",\n locTooltipName: \"ed.saveSurveyTooltip\",\n showTitle: false\n });\n\n this.previewAction = new Action({\n id: \"svd-preview\",\n iconName: \"icon-preview\",\n needSeparator: true,\n action: () => {\n this.creator.makeNewViewActive(\"test\");\n },\n visible: this.createVisibleUpdater(),\n locTitleName: \"ed.testSurvey\",\n showTitle: false\n });\n\n items.push(this.saveSurveyAction);\n items.push(toolboxAction);\n items.push(this.surveySettingsAction);\n this.creator.onSelectedElementChanged.add((sender, options) => {\n this.surveySettingsAction.active = this.isSettingsActive;\n this.surveySettingsAction.pressed = this.isSettingsActive;\n });\n this.creator.onShowSidebarVisibilityChanged.add((sender, options) => {\n this.surveySettingsAction.active = this.isSettingsActive;\n this.surveySettingsAction.pressed = this.isSettingsActive;\n });\n return items;\n }\n public selectSurvey() {\n if (!this.creator.showSidebar) {\n this.creator.setShowSidebar(true, true);\n }\n this.creator.selectElement(this.creator.survey);\n this.creator.sidebar.activeTab = this.propertyGridTab.id;\n }\n\n public addFooterActions() {\n this.creator.footerToolbar.actions.push(this.surveySettingsAction);\n this.creator.footerToolbar.actions.push(this.previewAction);\n }\n}","// extracted by mini-css-extract-plugin","import { Base, PageModel, property, SurveyModel, ComputedUpdater, settings, IPage } from \"survey-core\";\nimport { CreatorBase } from \"../../creator-base\";\nimport { DragDropSurveyElements } from \"survey-core\";\nrequire(\"./designer.scss\");\nimport { getLocString } from \"../../editorLocalization\";\nimport { PagesController } from \"../../pages-controller\";\nimport { SurveyHelper } from \"../../survey-helper\";\n\nexport const initialSettingsAllowShowEmptyTitleInDesignMode = settings.allowShowEmptyTitleInDesignMode;\n\nexport class TabDesignerViewModel extends Base {\n private cssUpdater: ComputedUpdater;\n private pagesControllerValue: PagesController;\n\n @property() newPage: PageModel;\n @property({ defaultValue: false }) showNewPage: boolean;\n @property() pageCount: number;\n @property() designerCss: string;\n @property() showPlaceholder: boolean;\n public creator: CreatorBase;\n\n private createNewPage() {\n const newPage: PageModel = this.survey.createNewPage(\"\");\n newPage[\"ignoreUndoRedo\"] = true;\n this.creator.setNewNames(newPage);\n newPage.onFirstRendering();\n newPage.updateCustomWidgets();\n newPage.setWasShown(true);\n newPage.setSurveyImpl(this.survey);\n newPage.updateElementCss();\n var checkNewElementHandler = (sender: SurveyModel, options: any) => {\n if (options.name === \"elements\" && newPage.elements.length > 0) {\n // if (this.survey.pages.indexOf(newPage) > -1) return;\n this.creator.addPage(newPage, true, () => {\n newPage.onPropertyChanged.remove(checkNewElementHandler);\n newPage.showTitle = true;\n newPage.showDescription = true;\n delete newPage[\"ignoreUndoRedo\"];\n return !(this.survey.pages.indexOf(newPage) > -1);\n });\n }\n };\n newPage.num = this.survey.pages.length + 1;\n newPage.onPropertyChanged.add(checkNewElementHandler);\n this.newPage = newPage;\n DragDropSurveyElements.newGhostPage = newPage;\n }\n private get canShowNewPage(): boolean {\n if (!this.survey || this.creator.pageEditMode === \"single\" || !this.creator.allowModifyPages) return false;\n if (this.creator.pageEditMode === \"bypage\") return true;\n const pages: PageModel[] = this.survey.pages;\n return pages.length === 0 || pages[pages.length - 1].elements.length > 0;\n }\n\n constructor(creator: CreatorBase) {\n super();\n this.creator = creator;\n this.pagesControllerValue = new PagesController(creator);\n this.initSurvey();\n }\n get survey() {\n return this.creator.survey;\n }\n public get pagesController(): PagesController {\n return this.pagesControllerValue;\n }\n public get isToolboxVisible(): boolean {\n return this.creator.showToolboxValue && (this.creator.toolboxLocation === \"right\" || this.creator.toolboxLocation === \"left\");\n }\n public get placeholderText(): string {\n return getLocString(\"ed.surveyPlaceHolder\");\n }\n private isUpdatingNewPage: boolean;\n public onDesignerSurveyPropertyChanged(obj: Base, propName: string): void {\n if(!obj || this.isUpdatingNewPage) return;\n this.isUpdatingNewPage = true;\n if(propName === \"elements\" && obj.isDescendantOf(\"page\")) {\n let updatePageController = false;\n if((<PageModel>obj).elements.length === 0) {\n updatePageController = this.checkLastPageToDelete();\n }\n this.checkNewPage(updatePageController);\n }\n if(propName === \"pages\" && obj.isDescendantOf(\"survey\")) {\n this.checkNewPage(true);\n }\n this.isUpdatingNewPage = false;\n }\n private calculateDesignerCss() {\n return this.survey.css.container + \" \" + this.survey.css.container + \"--\" + this.survey.calculatedWidthMode;\n }\n public initSurvey() {\n if (!this.survey) return;\n this.showNewPage = false;\n this.newPage = undefined;\n this.checkNewPage(false);\n this.cssUpdater && this.cssUpdater.dispose();\n this.cssUpdater = new ComputedUpdater<string>(() => {\n return this.calculateDesignerCss();\n });\n this.designerCss = <any>this.cssUpdater;\n this.pagesController.onSurveyChanged();\n }\n private checkNewPage(updatePageController: boolean) {\n const showPlaceholder = this.survey.getAllQuestions().length === 0 && this.survey.pageCount === 0;\n this.showPlaceholder = showPlaceholder;\n this.pageCount = this.survey.pageCount;\n if (this.showPlaceholder || this.canShowNewPage) {\n const pages = this.survey.pages;\n if (!this.newPage || (pages.length > 0 && this.newPage === pages[pages.length - 1])) {\n this.createNewPage();\n this.showNewPage = true;\n }\n this.newPage.showTitle = !showPlaceholder;\n this.newPage.showDescription = !showPlaceholder;\n } else {\n this.showNewPage = false;\n this.newPage = undefined;\n }\n if(updatePageController) {\n if (this.newPage) {\n this.newPage.num = this.survey.pages.length + 1;\n this.newPage.name = SurveyHelper.getNewPageName(this.survey.pages);\n }\n this.pagesController.raisePagesChanged();\n }\n }\n private checkLastPageToDelete(): boolean {\n if(this.survey.pageCount === 0) return false;\n if (this.survey.pageCount === 1 && !this.creator.isInitialSurveyEmpty) return false;\n const lastPage: PageModel = this.survey.pages[this.survey.pageCount - 1];\n if (lastPage.elements.length > 0 || (<any>lastPage).isConverting) return false;\n if (!SurveyHelper.isPageNameAutoGenerated(lastPage.name)) return false;\n const json = lastPage.toJSON();\n delete json[\"name\"];\n //If there is at least one property in page is set, then return\n for (var key in json) return false;\n lastPage.delete();\n if(this.survey.pageCount === 0) {\n this.creator.selectElement(this.survey);\n }\n return true;\n }\n\n public clickDesigner() {\n this.creator.selectedElement = this.creator.survey;\n }\n public getRootCss(): string {\n let rootCss = this.survey.css.root;\n if (this.creator.showPageNavigator && this.survey.pageCount > 1 || this.creator.pageEditMode === \"bypage\") {\n rootCss += \" svc-tab-designer--with-page-navigator\";\n }\n if (this.showPlaceholder) {\n rootCss += \" svc-tab-designer--with-place-holder\";\n }\n return rootCss;\n }\n}","export const json: any = {\n \"pages\": [\n {\n \"name\": \"embed\",\n \"elements\": [\n {\n \"type\": \"dropdown\",\n \"name\": \"framework\",\n \"width\": \"284px\",\n \"minWidth\": \"284px\",\n \"maxWidth\": \"284px\",\n \"titleLocation\": \"hidden\",\n \"defaultValue\": \"jquery\",\n \"choices\": [\n {\n \"value\": \"angular\",\n \"text\": \"Use Angular version\"\n },\n {\n \"value\": \"jquery\",\n \"text\": \"Use jQuery version\"\n },\n {\n \"value\": \"knockout\",\n \"text\": \"Use Knockout version\"\n },\n {\n \"value\": \"react\",\n \"text\": \"Use React version\"\n },\n {\n \"value\": \"vue\",\n \"text\": \"Use Vue version\"\n }\n ],\n \"showOptionsCaption\": false\n },\n {\n \"type\": \"dropdown\",\n \"name\": \"theme\",\n \"width\": \"284px\",\n \"minWidth\": \"284px\",\n \"maxWidth\": \"284px\",\n \"startWithNewLine\": false,\n \"titleLocation\": \"hidden\",\n \"defaultValue\": \"defaultV2\",\n \"choices\": [\n {\n \"value\": \"defaultV2\",\n \"text\": \"DefaultV2 theme\"\n },\n {\n \"value\": \"modern\",\n \"text\": \"Modern theme\"\n },\n {\n \"value\": \"default\",\n \"text\": \"Default theme\"\n },\n {\n \"value\": \"orange\",\n \"text\": \"Orange theme\"\n },\n {\n \"value\": \"darkblue\",\n \"text\": \"Darkblue theme\"\n },\n {\n \"value\": \"darkrose\",\n \"text\": \"Darkrose theme\"\n },\n {\n \"value\": \"stone\",\n \"text\": \"Stone theme\"\n },\n {\n \"value\": \"winter\",\n \"text\": \"Winter theme\"\n },\n {\n \"value\": \"winterstone\",\n \"text\": \"Winter-Stone theme\"\n },\n {\n \"value\": \"bootstrap\",\n \"text\": \"For bootstrap framework\"\n }\n ],\n \"showOptionsCaption\": false\n },\n {\n \"type\": \"dropdown\",\n \"name\": \"show\",\n \"width\": \"284px\",\n \"minWidth\": \"284px\",\n \"maxWidth\": \"284px\",\n \"startWithNewLine\": false,\n \"titleLocation\": \"hidden\",\n \"defaultValue\": \"page\",\n \"choices\": [\n {\n \"value\": \"page\",\n \"text\": \"Show survey on a page\"\n },\n {\n \"value\": \"window\",\n \"text\": \"Show survey in a window\"\n }\n ],\n \"showOptionsCaption\": false\n },\n {\n \"type\": \"expression\",\n \"name\": \"scripts_expression\",\n \"visible\": false,\n \"expression\": \"surveyjsEmbedScriptsMarkup({framework}, {theme})\"\n },\n {\n \"type\": \"comment\",\n \"name\": \"scripts\",\n \"description\": \"Scripts and styles\",\n \"readOnly\": true\n },\n {\n \"type\": \"expression\",\n \"name\": \"html_expression\",\n \"visible\": false,\n \"expression\": \"surveyjsEmbedHtmlMarkup({framework}, {show})\"\n },\n {\n \"type\": \"comment\",\n \"name\": \"html\",\n \"visibleIf\": \"{framework} <> 'knockout' or {show} <> 'window'\",\n \"description\": \"HTML\",\n \"readOnly\": true,\n \"rows\": 1\n },\n {\n \"type\": \"expression\",\n \"name\": \"javascript_expression\",\n \"visible\": false,\n \"expression\": \"surveyjsEmbedJavascriptMarkup({framework}, {theme}, {show})\"\n },\n {\n \"type\": \"comment\",\n \"name\": \"javascript\",\n \"description\": \"JavaScript\",\n \"readOnly\": true,\n \"rows\": 14\n }\n ]\n }\n ],\n \"triggers\": [\n {\n \"type\": \"copyvalue\",\n \"expression\": \"{scripts_expression} notempty\",\n \"setToName\": \"scripts\",\n \"fromName\": \"scripts_expression\"\n },\n {\n \"type\": \"copyvalue\",\n \"expression\": \"{html_expression} notempty\",\n \"setToName\": \"html\",\n \"fromName\": \"html_expression\"\n },\n {\n \"type\": \"copyvalue\",\n \"expression\": \"{javascript_expression} notempty\",\n \"setToName\": \"javascript\",\n \"fromName\": \"javascript_expression\"\n }\n ],\n \"showNavigationButtons\": \"none\"\n};","// extracted by mini-css-extract-plugin","import {\n Base,\n SurveyModel,\n FunctionFactory,\n Version,\n settings,\n property\n} from \"survey-core\";\nimport { ICreatorPlugin, CreatorBase } from \"../../creator-base\";\nimport { getLocString } from \"../../editorLocalization\";\nimport { propertyGridCss } from \"../../property-grid-theme/property-grid\";\nimport { json } from \"./embed-json\";\nrequire(\"./embed.scss\");\n\nexport class EmbedModel extends Base {\n @property() survey: SurveyModel;\n constructor(creator: CreatorBase) {\n super();\n FunctionFactory.Instance.register(\n \"surveyjsEmbedScriptsMarkup\",\n (params: [string, string]) => {\n const [framework, theme]: [string, string] = params;\n let result: string = \"\";\n if(framework ===\"jquery\") {\n result = \"<script src=\\\"https://unpkg.com/jquery\\\"></script>\";\n } else {\n result = `<!-- Your platform (${framework}) scripts -->`;\n }\n result +=\"\\n\\n\";\n if (theme !== \"bootstrap\") {\n result += `<link href=\"https://unpkg.com/survey-${framework}@${Version}/${\n [\"defaultV2\", \"modern\"].indexOf(theme) > -1 ? theme : \"survey\"\n }.css\" type=\"text/css\" rel=\"stylesheet\"/>`;\n }\n return (\n result +\n `\\n<script src=\"https://unpkg.com/survey-${framework}@${Version}/survey.${framework !== \"knockout\" ? framework : \"ko\"}.min.js\"></script>`\n );\n }\n );\n FunctionFactory.Instance.register(\n \"surveyjsEmbedHtmlMarkup\",\n (params: [string, string]) => {\n const [framework, show]: [string, string] = params;\n switch (framework) {\n case \"angular\":\n return \"<ng-app></ng-app>\";\n case \"vue\":\n return `<div id=\"surveyContainer\"><survey${\n show === \"window\" ? \"-window\" : \"\"\n } :survey=\\\"survey\\\"/></div>`;\n default:\n return '<div id=\"surveyContainer\"></div>';\n }\n }\n );\n FunctionFactory.Instance.register(\n \"surveyjsEmbedJavascriptMarkup\",\n (params: [string, string, string]) => {\n const [framework, theme, show]: [string, string, string] = params;\n let result: string = `Survey.StylesManager.applyTheme(\"${theme}\");\\n\\n`;\n result += `var surveyJSON = ${JSON.stringify(creator.JSON)};\\n\\n`;\n result +=\n 'function sendDataToServer(survey) {\\n //send Ajax request to your web server\\n alert(\"The results are: \" + JSON.stringify(survey.data));\\n}\\n\\n';\n const window: string = show === \"window\" ? \"Window\" : \"\";\n switch (framework) {\n case \"angular\":\n result += \"@Component({\\n selector: \\\"ng-app\\\",\\n template: '<div id=\\\"surveyElement\\\"></div>'\\n})\";\n result += `\\nexport class AppComponent {\\n ngOnInit() {\\n var survey = new Survey.Model(surveyJSON);\\n survey.onComplete.add(sendDataToServer);\\n Survey.Survey${window}NG.render(\"surveyElement\", { model: survey });\\n }\\n}`;\n break;\n case \"jquery\":\n result += \"var survey = new Survey.Model(surveyJSON);\\n\";\n result += `$(\"#surveyContainer\").Survey${window}({\\n model: survey,\\n onComplete: sendDataToServer\\n});`;\n break;\n case \"knockout\":\n result += `var survey = new Survey.Survey${window}(surveyJSON);\\n`;\n result += show === \"window\" ? \"survey.show();\\n\" : \"\";\n result += \"survey.onComplete.add(sendDataToServer);\\n\";\n result += show !== \"window\" ? \"survey.render(\\\"surveyContainer\\\");\" : \"\";\n break;\n case \"react\":\n result += `ReactDOM.render(<Survey.Survey${window} json={ surveyJSON } onComplete={ sendDataToServer } />, document.getElementById(\"surveyContainer\"));`;\n break;\n case \"vue\":\n result +=\n 'var survey = new Survey.Model(surveyJSON);\\nsurvey.onComplete.add(sendDataToServer);\\nnew Vue({ el: \"#surveyContainer\", data: { survey: survey } });';\n break;\n }\n return result;\n }\n );\n this.survey = creator.createSurvey(json, \"embed\");\n this.survey.getCss().list = {};\n this.survey.css = propertyGridCss;\n settings.readOnlyCommentRenderMode = \"default\";\n this.survey.onUpdateQuestionCssClasses.add((_, options) => {\n if (options.question.getType() === \"comment\") {\n options.cssClasses.title = \"sv-question-embed__title\";\n }\n });\n }\n}\n\nexport class TabEmbedPlugin implements ICreatorPlugin {\n public model: EmbedModel;\n constructor(private creator: CreatorBase) {\n creator.addPluginTab(\"embed\", this, \"ed.embedSurvey\");\n }\n public activate(): void {\n this.model = new EmbedModel(this.creator);\n }\n public deactivate(): boolean {\n this.model = undefined;\n return true;\n }\n}\n","// extracted by mini-css-extract-plugin","import { SurveyModel, property } from \"survey-core\";\nimport { ICreatorPlugin, CreatorBase } from \"../../creator-base\";\nimport { getLocString } from \"../../editorLocalization\";\nimport { SurveyTextWorker } from \"../../textWorker\";\nimport {\n JsonEditorBaseModel,\n TabJsonEditorBasePlugin\n} from \"./json-editor-plugin\";\nrequire(\"./json-editor-ace.scss\");\nexport class AceJsonEditorModel extends JsonEditorBaseModel {\n public static aceBasePath: string = \"\";\n private aceEditor: any;\n @property() private aceCanUndo: boolean = false;\n @property() private aceCanRedo: boolean = false;\n\n constructor(creator: CreatorBase) {\n super(creator);\n }\n\n protected getText(): string {\n return !!this.aceEditor ? this.aceEditor.getValue() : \"\";\n }\n protected setText(value: string): void {\n this.isProcessingImmediately = true;\n this.aceEditor.setValue(value);\n this.aceEditor.renderer.updateFull(true);\n this.aceEditor.getSession().getUndoManager().reset();\n this.processErrors(value);\n this.isProcessingImmediately = false;\n }\n\n public init(aceEditor: any): void {\n this.aceEditor = aceEditor;\n this.aceEditor.commands[\"removeCommand\"](\"find\");\n this.aceEditor.setReadOnly(this.readOnly);\n if (AceJsonEditorModel.aceBasePath) {\n try {\n window[\"ace\"][\"config\"].set(\"basePath\", AceJsonEditorModel.aceBasePath);\n this.aceEditor.session.setMode(\"ace/mode/json\");\n } catch { }\n }\n const self: AceJsonEditorModel = this;\n this.aceEditor.setShowPrintMargin(false);\n this.aceEditor.getSession().on(\"change\", () => {\n self.onTextChanged();\n });\n this.aceEditor.getSession().setUseWorker(true);\n SurveyTextWorker.newLineChar =\n this.aceEditor.session.doc.getNewLineCharacter();\n this.onPluginActivate();\n }\n private updateUndoRedoState(): void {\n const undoManager: any = this.aceEditor\n .getSession()\n .getUndoManager();\n this.aceCanUndo = undoManager.hasUndo();\n this.aceCanRedo = undoManager.hasRedo();\n var isFocused: any = this.aceEditor.isFocused();\n if (isFocused === true) {\n this.isJSONChanged = !undoManager.isClean();\n }\n }\n protected onTextChanged(): void {\n this.updateUndoRedoState();\n super.onTextChanged();\n }\n private createAnnotations(errors: any[]): any[] {\n const annotations: any[] = [];\n for (let i = 0; i < errors.length; i++) {\n const error: any = errors[i];\n const annotation: any = {\n row: error.position.start.row,\n column: error.position.start.column,\n text: error.text,\n type: \"error\"\n };\n annotations.push(annotation);\n }\n return annotations;\n }\n protected setErrors(errors: any[]): void {\n this.aceEditor.getSession().setAnnotations(this.createAnnotations(errors));\n }\n public onEditorActivated(): void {\n this.aceEditor.getSession().getUndoManager().markClean();\n this.updateUndoRedoState();\n this.aceEditor.focus();\n }\n}\n\nexport class TabJsonEditorAcePlugin\n extends TabJsonEditorBasePlugin\n implements ICreatorPlugin {\n constructor(creator: CreatorBase) {\n super(creator);\n creator.addPluginTab(\n \"editor\",\n this,\n getLocString(\"ed.jsonEditor\"),\n \"svc-tab-json-editor-ace\"\n );\n }\n protected createModel(\n creator: CreatorBase\n ): JsonEditorBaseModel {\n return new AceJsonEditorModel(creator);\n }\n public static hasAceEditor(): boolean {\n return typeof window[\"ace\"] !== \"undefined\";\n }\n}\n","import { Base, SurveyModel } from \"survey-core\";\nimport { ICreatorPlugin, CreatorBase } from \"../../creator-base\";\nimport { SurveyTextWorker } from \"../../textWorker\";\n\nexport abstract class JsonEditorBaseModel extends Base {\n public isJSONChanged: boolean = false;\n public isProcessingImmediately: boolean = false;\n private static updateTextTimeout: number = 1000;\n private jsonEditorChangedTimeoutId: number = -1;\n\n constructor(protected creator: CreatorBase) {\n super();\n }\n public get text(): string {\n return this.getText();\n }\n public set text(val: string) {\n this.setText(val);\n }\n protected abstract getText(): string;\n protected abstract setText(val: string): void;\n protected onEditorActivated(): void { }\n public onPluginActivate(): void {\n this.text = this.creator.text;\n this.onEditorActivated();\n this.isJSONChanged = false;\n }\n protected onTextChanged(): void {\n if (this.jsonEditorChangedTimeoutId !== -1) {\n clearTimeout(this.jsonEditorChangedTimeoutId);\n }\n if (this.isProcessingImmediately) {\n this.jsonEditorChangedTimeoutId = -1;\n } else {\n const self: JsonEditorBaseModel = this;\n if(!!window) {\n this.jsonEditorChangedTimeoutId = window.setTimeout(() => {\n self.jsonEditorChangedTimeoutId = -1;\n self.processErrors(self.text);\n }, JsonEditorBaseModel.updateTextTimeout);\n }\n }\n }\n protected abstract setErrors(errors: any[]): void;\n public processErrors(text: string): void {\n const textWorker: SurveyTextWorker = new SurveyTextWorker(text);\n this.setErrors(textWorker.errors);\n }\n public get readOnly(): boolean {\n return this.creator.readOnly;\n }\n}\n\nexport abstract class TabJsonEditorBasePlugin implements ICreatorPlugin {\n public model: JsonEditorBaseModel;\n constructor(private creator: CreatorBase) { }\n public activate(): void {\n this.model = this.createModel(this.creator);\n }\n public deactivate(): boolean {\n if (this.model) {\n const textWorker: SurveyTextWorker = new SurveyTextWorker(this.model.text);\n if (!textWorker.isJsonCorrect) {\n return false;\n }\n if (!this.model.readOnly && this.model.isJSONChanged) {\n this.creator.selectedElement = undefined;\n this.creator.text = this.model.text;\n this.creator.selectedElement = this.creator.survey;\n this.creator.setModified({ type: \"JSON_EDITOR\" });\n }\n this.model = undefined;\n }\n return true;\n }\n protected abstract createModel(\n creator: CreatorBase\n ): JsonEditorBaseModel;\n}\n","// extracted by mini-css-extract-plugin","import { SurveyModel, property, propertyArray } from \"survey-core\";\nimport { ICreatorPlugin, CreatorBase } from \"../../creator-base\";\nimport { getLocString } from \"../../editorLocalization\";\nimport {\n JsonEditorBaseModel,\n TabJsonEditorBasePlugin\n} from \"./json-editor-plugin\";\nrequire(\"./json-editor-textarea.scss\");\n\nexport class TextareaJsonEditorModel extends JsonEditorBaseModel {\n @property({ defaultValue: \"\", onSet: (_, target) => target.onTextChanged() })\n protected _text: string;\n @propertyArray() private _errors: any[];\n public ariaLabel: string = getLocString(\"ed.jsonEditor\");\n @property({ defaultValue: false }) canShowErrors: boolean;\n\n constructor(creator: CreatorBase) {\n super(creator);\n this.onPluginActivate();\n }\n\n public checkKey(data: any, e: any) {\n if (e.key === \"Tab\") {\n e.preventDefault();\n const textareaElement: any = e.target;\n const start = textareaElement.selectionStart;\n const end = textareaElement.selectionEnd;\n\n textareaElement.value = textareaElement.value.substring(0, start) +\n \"\\t\" + textareaElement.value.substring(end);\n textareaElement.selectionStart =\n textareaElement.selectionEnd = start + 1;\n e.stopPropagation();\n }\n return true;\n }\n protected getText(): string {\n return this._text;\n }\n protected setText(value: string): void {\n this.isProcessingImmediately = true;\n this._text = value;\n this.processErrors(value);\n this.isProcessingImmediately = false;\n }\n public get errorButtonText(): string {\n return this.canShowErrors ? getLocString(\"ed.jsonHideErrors\") : getLocString(\"ed.jsonShowErrors\");\n }\n public toggleErrors(): void {\n this.canShowErrors = !this.canShowErrors;\n }\n public get userFriendlyErrors(): any[] {\n if (this._errors.length === 0) {\n return [];\n }\n const customErrors: string[] = [];\n for (let i = 0; i < this._errors.length - 1; i++) {\n customErrors[i] = this._errors[i].text;\n customErrors[i] += \"\\n\\n\";\n }\n customErrors[this._errors.length - 1] = this._errors[this._errors.length - 1].text;\n return customErrors;\n }\n public get errors(): any[] {\n return this._errors;\n }\n\n protected onTextChanged(): void {\n this.isJSONChanged = true;\n super.onTextChanged();\n }\n protected setErrors(errors: any[]): void {\n this._errors = errors;\n }\n}\n\nexport class TabJsonEditorTextareaPlugin\n extends TabJsonEditorBasePlugin\n implements ICreatorPlugin\n{\n constructor(creator: CreatorBase) {\n super(creator);\n creator.addPluginTab(\n \"editor\",\n this,\n getLocString(\"ed.jsonEditor\"),\n \"svc-tab-json-editor-textarea\"\n );\n }\n protected createModel(\n creator: CreatorBase\n ): JsonEditorBaseModel {\n return new TextareaJsonEditorModel(creator);\n }\n}\n","import { Base, Helpers, IElement, ItemValue, PanelModel, Question, QuestionCommentModel, QuestionDropdownModel, Serializer, SurveyModel } from \"survey-core\";\nimport { editorLocalization } from \"../../editorLocalization\";\nimport { PropertyJSONGenerator } from \"../../property-grid\";\nimport { ISurveyCreatorOptions } from \"../../creator-settings\";\nimport { SurveyLogicAction } from \"./logic-items\";\nimport { SurveyLogicType } from \"./logic-types\";\n\nexport class LogicActionModelBase {\n public isTrigger: boolean;\n public currentLogicAction: SurveyLogicAction;\n\n static createActionModel(panel: PanelModel, logicAction: SurveyLogicAction, logicType: SurveyLogicType, selectorElementsHash): LogicActionModelBase {\n if (!!logicType && logicType.hasSelectorChoices) {\n return new LogicActionModel(panel, logicAction, logicType, selectorElementsHash);\n } else {\n return new LogicActionTriggerModel(panel, logicAction, logicType);\n }\n }\n\n constructor(protected panel: PanelModel, public initialLogicAction: SurveyLogicAction, public logicType: SurveyLogicType) { }\n\n updateCurrentLogicAction(survey: SurveyModel): boolean { return false; }\n afterUpdateInitialLogicAction(): void { }\n resetElements(): void { }\n getSelectedElement(): string { return null; }\n\n public updateInitialLogicAction(): void {\n this.initialLogicAction = this.currentLogicAction;\n if (this.afterUpdateInitialLogicAction) {\n this.afterUpdateInitialLogicAction();\n }\n }\n\n public setInitialElementValue(question: QuestionDropdownModel, action: SurveyLogicAction, selectedQuestion: string): void {\n if (!!selectedQuestion && question.choices.filter(ch => ch.value === selectedQuestion).length !== 0) {\n question.value = selectedQuestion;\n } else {\n question.value = !!action && action.logicType == this.logicType ? action.elementName : undefined;\n }\n }\n}\n\nexport class LogicActionModel extends LogicActionModelBase {\n private getSelectorOptionsText(logicType: SurveyLogicType): string {\n const elementType = logicType.baseClass;\n const optionsCaptionName = elementType == \"page\" ? \"pe.conditionSelectPage\" : (elementType == \"panel\" ? \"pe.conditionSelectPanel\" : \"pe.conditionSelectQuestion\");\n return editorLocalization.getString(optionsCaptionName);\n }\n private getElementBySelectorName(panel: PanelModel): Base {\n const value = panel.getQuestionByName(\"elementSelector\").value;\n if (!value) return null;\n return this.selectorElementsHash[value];\n }\n constructor(panel: PanelModel, logicAction: SurveyLogicAction, logicType: SurveyLogicType, private selectorElementsHash) {\n super(panel, logicAction, logicType);\n }\n\n public updateCurrentLogicAction(survey: SurveyModel): boolean {\n const selectedElement = this.getElementBySelectorName(this.panel);\n const createNewAction = !this.initialLogicAction || this.initialLogicAction.logicType != this.logicType || (!!selectedElement && this.initialLogicAction.element != selectedElement);\n if (!createNewAction) { return false; }\n this.currentLogicAction = new SurveyLogicAction(this.logicType, selectedElement, survey);\n return true;\n }\n\n public resetElements(): void {\n const question = <QuestionDropdownModel>this.panel.getQuestionByName(\"elementSelector\");\n question.visible = false;\n }\n public updatePanelElements(selectedElement: string, choices: Array<ItemValue>): void {\n const question = <QuestionDropdownModel>this.panel.getQuestionByName(\"elementSelector\");\n question.visible = true;\n question.choices = choices;\n question.allowClear = false;\n question.optionsCaption = this.getSelectorOptionsText(this.logicType);\n this.setInitialElementValue(question, this.initialLogicAction, selectedElement);\n }\n public getSelectedElement(): string {\n const question = <QuestionDropdownModel>this.panel.getQuestionByName(\"elementSelector\");\n return question.value;\n }\n}\n\nexport class LogicActionTriggerModel extends LogicActionModelBase {\n private panelObj: Base;\n\n public isTrigger = true;\n\n private recreateQuestion(panel: PanelModel, obj: Base, name: string, options: ISurveyCreatorOptions): void {\n const oldQuestion = !!name ? panel.getQuestionByName(name) : null;\n if (!oldQuestion) return;\n const triggerEditorPanel = <PanelModel>panel.getElementByName(\"triggerEditorPanel\");\n\n const tempPanel = Serializer.createClass(\"panel\");\n const propGenerator = new PropertyJSONGenerator(obj, options);\n propGenerator.setupObjPanel(tempPanel, true, \"logic\");\n const newQuestion = tempPanel.getQuestionByName(name);\n if (!!newQuestion) {\n let index = triggerEditorPanel.elements.indexOf(oldQuestion);\n triggerEditorPanel.addElement(newQuestion, index);\n oldQuestion.delete();\n }\n if (newQuestion.name === \"setValue\") {\n this.updateSetValueQuestion(newQuestion);\n }\n this.updateVisibilityPanel(triggerEditorPanel);\n tempPanel.dispose();\n }\n private updateSetValueQuestion(question: Question) {\n const obj = (<any>question).obj;\n let survey = obj.getSurvey();\n if (!survey) {\n survey = obj[\"owner\"];\n }\n if (!obj[\"setToName\"] || !survey) return;\n const originalQuestion = <Question>survey.getQuestionByValueName(obj[\"setToName\"]);\n question.title = originalQuestion.title;\n question.titleLocation = \"top\";\n }\n private updateRunExpressionQuestion(question: QuestionCommentModel) {\n question.titleLocation = \"hidden\";\n question.placeholder = editorLocalization.getString(\"pe.emptyExpressionPlaceHolder\");\n }\n\n private createElementPanelObj(): Base {\n const action = this.initialLogicAction;\n const srcElement = !!action && action.logicType == this.logicType ? action.element : null;\n const newObj = this.logicType.createNewObj(srcElement);\n this.setPanelObj(newObj);\n return newObj;\n }\n private getQuestions(): Array<IElement> {\n const triggerQuestionsPanel = <PanelModel>this.panel.getElementByName(\"triggerQuestionsPanel\");\n if (triggerQuestionsPanel.elements.length === 0 || !this.logicType.questionNames) {\n return null;\n }\n return triggerQuestionsPanel.elements.filter(el => this.logicType.questionNames.indexOf(el.name) !== -1);\n }\n private resetPanel(panelName: string) {\n const panel = <PanelModel>this.panel.getElementByName(panelName);\n panel.questions.forEach(q => { q.clearValue(); });\n panel.elements.splice(0, panel.elements.length);\n panel.visible = false;\n }\n private updateVisibilityPanel(panel: PanelModel) {\n if (panel.elements.length > 0) {\n panel.visible = panel.elements.filter(el => el.visible).length > 0;\n } else {\n panel.visible = false;\n }\n }\n private updatePanelQuestionsValue(panel: PanelModel) {\n panel.onSurveyLoad();\n panel.questions.forEach(q => {\n if (!Helpers.isValueEmpty(this.panelObj[q.getValueName()])) {\n q.value = this.panelObj[q.getValueName()];\n }\n });\n }\n\n constructor(panel: PanelModel, logicAction: SurveyLogicAction, logicType: SurveyLogicType) {\n super(panel, logicAction, logicType);\n }\n\n public afterUpdateInitialLogicAction(): void {\n this.setPanelObj(this.initialLogicAction.element);\n if (!!this.panelObj) {\n this.logicType.saveNewElement(this.panelObj);\n }\n }\n public updateCurrentLogicAction(survey: SurveyModel): boolean {\n const createNewAction = !this.initialLogicAction || this.initialLogicAction.logicType != this.logicType;\n if (!createNewAction) {\n this.initialLogicAction.element.fromJSON(this.panelObj.toJSON());\n this.currentLogicAction = this.initialLogicAction;\n return false;\n }\n this.currentLogicAction = new SurveyLogicAction(this.logicType, this.panelObj, survey);\n return true;\n }\n\n public updatePanel(propertyName: string, newValue: any, options: ISurveyCreatorOptions, survey: SurveyModel): void {\n if (!this.panelObj) return;\n\n this.panelObj[propertyName] = newValue;\n if (!!this.logicType && this.logicType.dependedOnPropertyName === propertyName) {\n this.recreateQuestion(this.panel, this.panelObj, this.logicType.dynamicPropertyName, options);\n }\n this.panel.runCondition(survey.getAllValues(), { survey: survey });\n }\n\n public setPanelObj(obj: Base): void {\n const oldPanelObj = this.panelObj;\n if (!!oldPanelObj) {\n oldPanelObj.onPropertyValueChangedCallback = undefined;\n }\n this.panelObj = obj;\n if (!!obj) {\n obj.onPropertyValueChangedCallback = (name: string, oldValue: any, newValue: any, sender: Base, arrayChanges: any) => {\n if (!this.panel || this.panel.isDisposed) {\n oldPanelObj.onPropertyValueChangedCallback = undefined;\n return;\n }\n const q = this.panel.getQuestionByName(name);\n if (!!q) {\n q.value = newValue;\n }\n };\n }\n }\n\n public resetElements(): void {\n this.setPanelObj(null);\n this.resetPanel(\"triggerQuestionsPanel\");\n this.resetPanel(\"triggerEditorPanel\");\n }\n\n public updatePanelElements(selectedElement: string, options?: ISurveyCreatorOptions): void {\n const triggerEditorPanel = <PanelModel>this.panel.getElementByName(\"triggerEditorPanel\");\n const triggerQuestionsPanel = <PanelModel>this.panel.getElementByName(\"triggerQuestionsPanel\");\n const obj = this.createElementPanelObj();\n\n const propGenerator = new PropertyJSONGenerator(obj, options);\n propGenerator.setupObjPanel(triggerEditorPanel, true, \"logic\");\n\n triggerEditorPanel.title = \"\";\n const runExpressionQuestion = <QuestionCommentModel>triggerEditorPanel.getQuestionByName(\"runExpression\");\n runExpressionQuestion && this.updateRunExpressionQuestion(runExpressionQuestion);\n\n if (!!this.logicType.questionNames) {\n const questionsToMove = triggerEditorPanel.elements.filter(el => this.logicType.questionNames.indexOf(el.name) !== -1);\n questionsToMove.forEach(q => {\n const question = q as QuestionDropdownModel;\n if (question.getType() === \"dropdown\") {\n question.allowClear = false;\n question.renderAs = \"logicoperator\";\n }\n triggerQuestionsPanel.addQuestion(question);\n });\n }\n\n triggerEditorPanel.getElementByName(this.logicType.propertyName).visible = false;\n this.updateVisibilityPanel(triggerQuestionsPanel);\n this.updatePanelQuestionsValue(triggerQuestionsPanel);\n this.updateVisibilityPanel(triggerEditorPanel);\n this.updatePanelQuestionsValue(triggerEditorPanel);\n\n const questions = this.getQuestions();\n if (!!questions && !!selectedElement) {\n questions.forEach(question => {\n this.setInitialElementValue(<QuestionDropdownModel>question, this.initialLogicAction, selectedElement);\n selectedElement = null;\n });\n }\n }\n public getSelectedElement(): string {\n const questions = this.getQuestions();\n if (!questions) return;\n const question = <QuestionDropdownModel>questions[0];\n return (!!question && question.value);\n }\n}","import { ConditionsParser, Operand, BinaryOperand, Variable, Const, ArrayOperand, Helpers } from \"survey-core\";\nexport class SurveyLogicExpressionUpdater {\n private operand: Operand;\n private constChanges: Array<{op: Operand, val: any}> = [];\n constructor(expresion: string) {\n this.operand = new ConditionsParser().parseExpression(expresion);\n }\n public update(varName: string, oldValue: any, newValue: any): void {\n this.updateOperand(this.operand, varName.toLocaleLowerCase(), oldValue, newValue);\n }\n public get isModified(): boolean { return this.constChanges.length > 0; }\n public toString(): string {\n var self = this;\n var isRoot = true;\n var strFunc = function (op: Operand): string {\n var locIsRoot = isRoot;\n isRoot = false;\n if (op.getType() === \"const\") {\n return self.constToString(<Const>op);\n }\n if (op.getType() === \"binary\") {\n return self.binaryToString(<BinaryOperand>op, locIsRoot, strFunc);\n }\n return undefined;\n };\n return this.operand.toString(strFunc);\n }\n private constToString(op: Const): string {\n for(var i = 0; i < this.constChanges.length; i ++) {\n if(this.constChanges[i].op === op) return this.constChanges[i].val;\n }\n return op.toString();\n }\n private binaryToString(\n op: BinaryOperand,\n isRoot: boolean,\n func: (op: Operand) => string\n ): string {\n return (\n (isRoot ? \"\" : \"(\") +\n this.operandToString(op.leftOperand, func) +\n \" \" +\n this.operatorToString(op.operator) +\n \" \" +\n this.operandToString(op.rightOperand, func) +\n (isRoot ? \"\" : \")\")\n );\n }\n private operandToString(op: any, func: (op: Operand) => string): string {\n return !!op ? op.toString(func) : \"\";\n }\n private operatorToString(operator: string): string {\n var res = SurveyLogicExpressionUpdater.operatorText[operator];\n return !!res ? res : operator;\n }\n static operatorText = {\n less: \"<\",\n lessorequal: \"<=\",\n greater: \">\",\n greaterorequal: \">=\",\n equal: \"=\",\n notequal: \"!=\",\n plus: \"+\",\n minus: \"-\",\n mul: \"*\",\n div: \"/\",\n power: \"^\",\n mod: \"%\",\n negate: \"!\",\n };\n private updateOperand(op: Operand, varName: string, oldValue: any, newValue: any): void {\n if(op.getType() == \"binary\") {\n const bOP = <BinaryOperand>op;\n if(bOP.isConjunction) {\n this.updateOperand(bOP.leftOperand, varName, oldValue, newValue);\n this.updateOperand(bOP.rightOperand, varName, oldValue, newValue);\n } else {\n if(this.hasVarName(bOP.leftOperand, varName)) {\n this.updateOperandConst(bOP.rightOperand, oldValue, newValue);\n } else {\n if(this.hasVarName(bOP.rightOperand, varName)) {\n this.updateOperandConst(bOP.leftOperand, oldValue, newValue);\n }\n }\n }\n }\n }\n private hasVarName(op: Operand, varName: string): boolean {\n if(!op || op.getType() !== \"variable\") return;\n return (<Variable>op).variable.toLowerCase() === varName;\n }\n private updateOperandConst(op: Operand, oldValue: any, newValue: any): void {\n if(op.getType() === \"array\") {\n const aOp = <ArrayOperand>op;\n if(Array.isArray(aOp.values)) {\n aOp.values.forEach(item => this.updateOperandConst(item, oldValue, newValue));\n }\n }\n if(op.getType() !== \"const\") return;\n const cOp = <Const>op;\n if(Helpers.isTwoValueEquals(cOp.correctValue, oldValue)) {\n newValue = this.getCorrectNewValue(cOp, newValue);\n this.constChanges.push({ op: op, val: newValue });\n }\n }\n private getCorrectNewValue(op: Const, newValue: any): any {\n const str = op.toString();\n if(!!str && !Helpers.isTwoValueEquals(op.correctValue, str)) {\n if(str[0] === \"\\\"\" || str[0] === \"'\") {\n return str[0] + newValue + str[0];\n }\n }\n return newValue;\n }\n}\nexport function updateLogicExpression(expression: string, varName: string, oldValue: any, newValue: any): string {\n const updater = new SurveyLogicExpressionUpdater(expression);\n updater.update(varName, oldValue, newValue);\n return updater.isModified ? updater.toString() : expression;\n}","import { SurveyModel, QuestionPanelDynamicModel, ItemValue, PanelModel, Base, FunctionFactory, Question, QuestionHtmlModel, QuestionDropdownModel, SurveyElement } from \"survey-core\";\nimport { ISurveyCreatorOptions, EmptySurveyCreatorOptions } from \"../../creator-settings\";\nimport { PropertyEditorSetupValue } from \"../../property-grid/index\";\nimport { SurveyLogicItem, SurveyLogicAction } from \"./logic-items\";\nimport { SurveyLogicType, getLogicString } from \"./logic-types\";\nimport { editorLocalization } from \"../../editorLocalization\";\nimport { SurveyHelper } from \"../../survey-helper\";\nimport { logicCss } from \"./logic-theme\";\nimport { assignDefaultV2Classes } from \"../../utils/utils\";\nimport { QuestionLinkValueModel } from \"../../components/link-value\";\nimport { LogicActionModelBase, LogicActionModel, LogicActionTriggerModel } from \"./logic-actions-model\";\n\nfunction logicTypeVisibleIf(params: any): boolean {\n if (!this.question || !this.question.parentQuestion || params.length != 1)\n return true;\n const panels = this.question.parentQuestion.panels;\n if (panels.length < 2) return true;\n for (let i = 0; i < panels.length; i++) {\n const q = panels[i].getQuestionByName(\"logicTypeName\");\n if (q == this.question) continue;\n if (q.value == params[0]) return false;\n }\n return true;\n}\n\nFunctionFactory.Instance.register(\"logicTypeVisibleIf\", logicTypeVisibleIf);\n\nexport class LogicItemEditor extends PropertyEditorSetupValue {\n private logicTypeChoices: Array<ItemValue>;\n private editableItemValue: SurveyLogicItem;\n private isBuildingPanels: boolean;\n private initialSelectedElements: any = {};\n private isModifiedValue: boolean = false;\n private contextValue: Question;\n private selectorElementsHash = {};\n\n constructor(editableItem: SurveyLogicItem, protected options: ISurveyCreatorOptions = null) {\n super(options);\n if (!this.options) {\n this.options = new EmptySurveyCreatorOptions();\n }\n this.editSurvey.onDynamicPanelItemValueChanged.add((sender, options) => {\n if (options.name == \"logicTypeName\") {\n this.onLogicTypeChanged(options.panel);\n }\n const actionModel = this.getActionModelByPanel(options.panel);\n if (actionModel.isTrigger) {\n (<LogicActionTriggerModel>actionModel).updatePanel(options.name, options.value, this.options, this.editSurvey);\n }\n });\n this.editSurvey.onDynamicPanelRemoved.add((sender, options) => {\n if (this.isBuildingPanels) return;\n const actionModel = this.getActionModelByPanel(options.panel);\n if (!!actionModel && !!actionModel.initialLogicAction) {\n this.editableItem.removeAction(actionModel.initialLogicAction);\n }\n if (this.panel.panelCount == 0) {\n this.panel.addPanel();\n }\n if (this.panel.panelCount > 0)\n this.panels[0].getQuestionByName(\"logicTypeName\").title = editorLocalization.getString(\"pe.then\");\n });\n this.editSurvey.onDynamicPanelAdded.add((sender, options) => {\n if (this.isBuildingPanels) return;\n const panel = this.panels[this.panel.panelCount - 1];\n this.onPanelAdded(panel, null);\n });\n this.editSurvey.css = logicCss;\n this.editSurvey.onUpdateQuestionCssClasses.add((sender, options) => {\n this.onUpdateQuestionCssClasses(options);\n });\n this.editSurvey.onUpdatePanelCssClasses.add((sender, options) => {\n this.onUpdatePanelCssClasses(options);\n });\n this.editSurvey.onQuestionAdded.add((sender, options) => {\n this.onQuestionAdded(options);\n });\n this.editSurvey.onGetQuestionTitleActions.add((sender, options) => {\n this.onGetQuestionTitleActions(options);\n });\n this.editSurvey.onValueChanged.add((sender, options) => {\n this.onValueChanged(options);\n });\n this.setEditableItem(editableItem);\n }\n public get editableItem(): SurveyLogicItem {\n return this.editableItemValue;\n }\n public setEditableItem(val: SurveyLogicItem): void {\n this.editableItemValue = val;\n this.buildInitialSelectedElements();\n this.buildPanels();\n this.resetModified();\n }\n public get survey(): SurveyModel {\n return this.editableItem.survey;\n }\n public get isModified(): boolean {\n return this.isModifiedValue;\n }\n public get panel(): QuestionPanelDynamicModel {\n return <QuestionPanelDynamicModel>(this.editSurvey.getQuestionByName(\"panel\"));\n }\n public get panels(): Array<PanelModel> {\n return this.panel.panels;\n }\n public getActionModelByPanel(panel: PanelModel): LogicActionModelBase {\n return panel[\"actionModel\"];\n }\n public setActionModelByPanel(panel: PanelModel, actionModel: LogicActionModelBase): void {\n panel[\"actionModel\"] = actionModel;\n }\n\n public get context(): Question { return this.contextValue; }\n public set context(val: Question) {\n if (val === this.context) return;\n this.contextValue = val;\n this.updatePanelsOnContextChanged();\n }\n private getLogicTypeByPanel(panel: PanelModel): SurveyLogicType {\n return this.getLogicTypeByName(panel.getQuestionByName(\"logicTypeName\").value);\n }\n protected getSurveyJSON(): any {\n return {\n clearInvisibleValues: \"onHidden\",\n elements: [\n {\n type: \"paneldynamic\",\n name: \"panel\",\n title: getLogicString(\"actionsEditorTitle\"),\n titleLocation: \"hidden\",\n panelAddText: getLogicString(\"addNewAction\"),\n panelRemoveButtonLocation: \"right\",\n panelCount: 0,\n minPanelCount: 1,\n maxPanelCount: 1,\n templateElements: [\n {\n name: \"logicTypeName\",\n type: \"dropdown\",\n renderAs: \"logicoperator\",\n searchEnabled: false,\n allowClear: false,\n title: editorLocalization.getString(\"pe.then\"),\n titleLocation: \"left\",\n isRequired: true,\n optionsCaption: getLogicString(\"selectedActionCaption\"),\n requiredErrorText: this.getLocString(\"pe.conditionActionEmpty\")\n },\n {\n name: \"logicTypeDescription\",\n type: \"html\",\n startWithNewLine: false,\n visible: false // TODO we do not show description by the new design\n },\n {\n name: \"elementSelector\",\n type: \"dropdown\",\n renderAs: \"logicoperator\",\n allowClear: false,\n titleLocation: \"hidden\",\n isRequired: true,\n startWithNewLine: false,\n visible: false\n },\n {\n name: \"triggerQuestionsPanel\",\n type: \"panel\",\n startWithNewLine: false,\n visible: false\n },\n {\n name: \"removeAction\",\n type: \"linkvalue\",\n titleLocation: \"hidden\",\n showOptionsCaption: false,\n visible: false,\n startWithNewLine: false,\n showValueInLink: false,\n allowClear: false,\n showClear: false\n },\n {\n name: \"triggerEditorPanel\",\n type: \"panel\",\n visible: false\n },\n ]\n }\n ]\n };\n }\n protected getSurveyCreationReason(): string {\n return \"logic-item-editor\";\n }\n public resetModified(): void {\n this.isModifiedValue = false;\n }\n public apply(): boolean {\n if (this.editSurvey.hasErrors()) return false;\n for (let i = 0; i < this.panels.length; i++) {\n this.applyPanel(this.panels[i]);\n }\n this.resetModified();\n return true;\n }\n public getEditingActions(): Array<SurveyLogicAction> {\n return this.panels.map(panel => {\n const modelAction = this.getActionModelByPanel(panel);\n modelAction.updateCurrentLogicAction(this.survey);\n return modelAction.currentLogicAction || modelAction.initialLogicAction;\n }).filter(action => !!action);\n }\n private onUpdateQuestionCssClasses(options: any) {\n options.cssClasses.answered = \"svc-logic-question--answered\";\n\n if (options.question.name === \"logicTypeName\") {\n options.question.allowRootStyle = false;\n options.cssClasses.control += \" svc-logic-operator svc-logic-operator--action\";\n options.cssClasses.error.root = \"svc-logic-operator__error\";\n options.cssClasses.onError = \"svc-logic-operator--error\";\n }\n if (options.question.name === \"elementSelector\" || options.question.name === \"setToName\" || options.question.name === \"fromName\" || options.question.name === \"gotoName\") {\n options.question.allowRootStyle = false;\n options.cssClasses.control += \" svc-logic-operator svc-logic-operator--question\";\n options.cssClasses.error.root = \"svc-logic-operator__error\";\n options.cssClasses.onError = \"svc-logic-operator--error\";\n }\n if (options.question.name === \"setToName\" || options.question.name === \"fromName\") {\n options.question.allowRootStyle = false;\n options.question.titleLocation = \"left\";\n options.question.startWithNewLine = false;\n options.cssClasses.error.root = \"svc-logic-operator__error\";\n options.cssClasses.onError = \"svc-logic-operator--error\";\n }\n if (options.question.name === \"setValue\") {\n assignDefaultV2Classes(options.cssClasses, options.question.getType());\n options.cssClasses.mainRoot += \" svc-logic-question-value\";\n }\n if (options.question.name === \"removeAction\") {\n options.question.allowRootStyle = false;\n options.cssClasses.mainRoot += \" svc-logic-condition-remove-question\";\n }\n // options.cssClasses.mainRoot = \"sd-question sd-row__question\";\n if (options.question.name === \"panel\") {\n options.cssClasses.root += \" svc-logic-paneldynamic\";\n options.cssClasses.buttonAdd += \" svc-logic-operator--action \";\n options.cssClasses.iconRemove = \"svc-icon-remove\";\n options.cssClasses.buttonRemove = \"svc-logic-paneldynamic__button svc-logic-paneldynamic__remove-btn\";\n options.cssClasses.buttonRemoveRight = \"svc-logic-paneldynamic__remove-btn--right\";\n options.cssClasses.buttonRemoveText = \"svc-logic-paneldynamic__button-remove-text\";\n }\n }\n private onUpdatePanelCssClasses(options: any) {\n if (options.panel.name === \"triggerEditorPanel\") {\n options.cssClasses.panel.container += \" svc-logic_trigger-editor\";\n }\n if (options.panel.name === \"triggerQuestionsPanel\") {\n options.panel.allowRootStyle = false;\n options.cssClasses.panel.container += \" svc-logic_trigger-questions\";\n }\n }\n private onValueChanged(options: any) {\n this.isModifiedValue = true;\n options.question.maxPanelCount = (options.value.length === 1 && !options.value[0].logicTypeName) ? 1 : 100;\n this.panels.forEach(panel => {\n panel.getQuestionByName(\"removeAction\").visible = options.value.length !== 1;\n });\n }\n private onQuestionAdded(options: any) {\n if (options.question.name === \"setToName\" || options.question.name === \"fromName\") {\n options.question.titleLocation = \"left\";\n options.question.startWithNewLine = false;\n }\n }\n private onGetQuestionTitleActions(options: any) {\n if (options.question.name === \"setValue\") {\n options.titleActions = [];\n }\n }\n\n private applyPanel(panel: PanelModel) {\n const actionModel = this.getActionModelByPanel(panel);\n if (!actionModel.updateCurrentLogicAction(this.survey)) {\n return;\n }\n this.editableItem.replaceAction(actionModel.currentLogicAction, actionModel.initialLogicAction);\n actionModel.updateInitialLogicAction();\n }\n\n private buildInitialSelectedElements() {\n this.initialSelectedElements = {};\n if (!this.editableItem) return;\n for (let i = 0; i < this.editableItem.actions.length; i++) {\n const action = this.editableItem.actions[i];\n if (this.isElementSelectorVisible(action.logicType)) {\n const lgName = action.logicTypeName;\n if (!this.initialSelectedElements[lgName]) {\n this.initialSelectedElements[lgName] = [];\n }\n this.initialSelectedElements[lgName].push(action.element);\n }\n }\n }\n private buildPanels() {\n this.panel.panelCount = 0;\n\n if (!this.editableItem) return;\n this.logicTypeChoices = this.getLogicTypeChoices();\n for (let i = 0; i < this.editableItem.actions.length; i++) {\n this.onPanelAdded(this.panel.addPanel(), this.editableItem.actions[i]);\n }\n if (this.panel.panelCount == 0) {\n this.onPanelAdded(this.panel.addPanel(), null);\n }\n }\n private onPanelAdded(panel: PanelModel, action: SurveyLogicAction): PanelModel {\n const ltQuestion = <QuestionDropdownModel>panel.getQuestionByName(\"logicTypeName\");\n ltQuestion.title = this.panel.panelCount > 1 ? editorLocalization.getString(\"pe.and\") : editorLocalization.getString(\"pe.then\");\n ltQuestion.choices = this.logicTypeChoices;\n ltQuestion.allowClear = false;\n if (!!action) {\n const newActionModel = LogicActionModelBase.createActionModel(panel, action, this.getLogicTypeByName(action.logicTypeName), this.selectorElementsHash);\n this.setActionModelByPanel(panel, newActionModel);\n ltQuestion.value = action.logicTypeName;\n }\n const removeActionLinkQuestion: QuestionLinkValueModel = <QuestionLinkValueModel>(panel.getQuestionByName(\"removeAction\"));\n const dynamicPanel: QuestionPanelDynamicModel = <QuestionPanelDynamicModel>(removeActionLinkQuestion.parentQuestion);\n removeActionLinkQuestion.linkClickCallback = () => {\n if (!!dynamicPanel) {\n dynamicPanel.removePanelUI(panel);\n }\n };\n removeActionLinkQuestion.linkSetButtonCssClasses = \"svc-logic-condition-remove svc-icon-remove\";\n removeActionLinkQuestion.linkValueText = \"\";\n\n return panel;\n }\n private updatePanelsOnContextChanged() {\n this.logicTypeChoices = this.getLogicTypeChoices();\n if (!!this.context) {\n for (let i = this.panels.length - 1; i >= 0; i--) {\n const panel = this.panels[i];\n if (this.isPanelSupportContext(panel)) continue;\n if (i === 0 && this.panels.length === 1) {\n panel.getQuestionByName(\"logicTypeName\").clearValue();\n }\n else {\n this.panel.removePanel(i);\n }\n }\n }\n for (let i = 0; i < this.panels.length; i++) {\n this.updateSelectorOnContextChanged(this.panels[i]);\n }\n }\n private isPanelSupportContext(panel: PanelModel): boolean {\n const logicType = this.getLogicTypeByPanel(panel);\n return !!logicType ? logicType.supportContext(this.context) : false;\n }\n private updateSelectorOnContextChanged(panel: PanelModel) {\n const logicTypeQuestion = <QuestionDropdownModel>panel.getQuestionByName(\"logicTypeName\");\n logicTypeQuestion.choices = this.logicTypeChoices;\n logicTypeQuestion.allowClear = false;\n const logicType = this.getLogicTypeByPanel(panel);\n if (!this.isElementSelectorVisible(logicType)) return;\n const selectorQuestion = <QuestionDropdownModel>panel.getQuestionByName(\"elementSelector\");\n selectorQuestion.choices = this.getSelectorChoices(logicType);\n selectorQuestion.allowClear = false;\n }\n private getLogicTypeChoices(): Array<ItemValue> {\n const res = [];\n const logicTypes = this.editableItem.getVisibleLogicTypes();\n for (let i = 0; i < logicTypes.length; i++) {\n const lt = logicTypes[i];\n if (!!this.context && !lt.supportContext(this.context)) continue;\n let item = new ItemValue(lt.name, lt.displayName);\n if (lt.isUniqueItem) {\n item.visibleIf = \"logicTypeVisibleIf({item})\";\n }\n res.push(item);\n }\n return res;\n }\n private onLogicTypeChanged(panel: PanelModel) {\n const logicType = this.getLogicTypeByPanel(panel);\n const qTypeDescription = <QuestionHtmlModel>panel.getQuestionByName(\"logicTypeDescription\");\n qTypeDescription.html = !!logicType ? logicType.description : \"\";\n\n const oldActionModel = this.getActionModelByPanel(panel);\n let prevSelectedQuestion;\n if (!!oldActionModel) {\n prevSelectedQuestion = oldActionModel.getSelectedElement();\n oldActionModel.resetElements();\n }\n\n if (!logicType) return;\n\n const newActionModel = LogicActionModelBase.createActionModel(panel, (oldActionModel ? oldActionModel.initialLogicAction : null), logicType, this.selectorElementsHash);\n this.setActionModelByPanel(panel, newActionModel);\n if (newActionModel.isTrigger) {\n (<LogicActionTriggerModel>newActionModel).updatePanelElements(prevSelectedQuestion, this.options);\n } else {\n (<LogicActionModel>newActionModel).updatePanelElements(prevSelectedQuestion, this.getSelectorChoices(newActionModel.logicType));\n }\n }\n private getLogicTypeByName(ltName: string): SurveyLogicType {\n if (!ltName) return null;\n const logicTypes = this.editableItem.getVisibleLogicTypes();\n for (let i = 0; i < logicTypes.length; i++) {\n if (logicTypes[i].name == ltName) return logicTypes[i];\n }\n return null;\n }\n\n private isElementSelectorVisible(logicType: SurveyLogicType): boolean {\n return !!logicType && logicType.hasSelectorChoices;\n }\n\n public getLocString(name: string): string {\n return editorLocalization.getString(name);\n }\n private getElementText(el: SurveyElement, showTitles: boolean): string {\n let text = \"\";\n if (showTitles) {\n text = el.locTitle.renderedHtml;\n }\n if (!text) text = el.name;\n if (el.isQuestion) {\n text = this.options.getObjectDisplayName(el, \"logic-tab:question-selector\", \"condition\", text);\n }\n return text;\n }\n\n private getSelectorChoices(logicType: SurveyLogicType): Array<ItemValue> {\n if (!logicType.hasSelectorChoices) return [];\n const elements = logicType.getSelectorChoices(this.survey, this.context);\n const res = [];\n const showTitles = this.options.showTitlesInExpressions;\n for (let i = 0; i < elements.length; i++) {\n let namePrefix = \"\";\n let textPrefix = \"\";\n const el = elements[i];\n const owner = <Question>logicType.getParentElement(el);\n if (owner) {\n namePrefix = owner.name + \".\";\n textPrefix = this.getElementText(owner, showTitles) + \".\";\n }\n const text = this.getElementText(el, showTitles);\n const value = namePrefix + el.name;\n let itemValue = new ItemValue(value, textPrefix + text);\n this.selectorElementsHash[value] = el;\n if (!!el[logicType.propertyName] && !this.isElementInInitialSelection(logicType.name, el)) {\n itemValue.enableIf = \"1=2\";\n itemValue.visibleIf = \"1=2\";\n }\n res.push(itemValue);\n }\n SurveyHelper.sortItems(res);\n return res;\n }\n private isElementInInitialSelection(logicTypeName: string, el: Base): boolean {\n if (!this.initialSelectedElements[logicTypeName]) return false;\n return this.initialSelectedElements[logicTypeName].indexOf(el) > -1;\n }\n}","import {\n SurveyModel,\n Base,\n property,\n propertyArray,\n Serializer,\n SurveyTrigger,\n ConditionRunner,\n Question,\n ItemValue,\n MatrixDropdownColumn,\n Helpers\n} from \"survey-core\";\nimport { editorLocalization } from \"../../editorLocalization\";\nimport { ExpressionRemoveVariable } from \"../../expressionToDisplayText\";\nimport { updateLogicExpression } from \"./logic-expression\";\nimport { SurveyLogicType, getLogicString } from \"./logic-types\";\nimport { settings } from \"../../creator-settings\";\nimport { wrapTextByCurlyBraces } from \"../../utils/utils\";\nimport { SurveyHelper } from \"../../survey-helper\";\n\nexport class SurveyLogicAction {\n private surveyValue: SurveyModel;\n private logicTypeValue: SurveyLogicType;\n private elementValue: Base;\n constructor(logicType: SurveyLogicType, element: Base, survey: SurveyModel) {\n this.surveyValue = survey;\n this.logicTypeValue = logicType;\n this.elementValue = element;\n }\n public get logicType(): SurveyLogicType {\n return this.logicTypeValue;\n }\n public get element(): Base {\n return this.elementValue;\n }\n public get parentElement(): Base {\n if(!this.element || !this.logicType) return null;\n return this.logicType.getParentElement(this.element);\n }\n public get survey(): SurveyModel {\n return this.surveyValue;\n }\n public apply(expression: string, isRenaming: boolean = false): void {\n if (!!this.element && !!this.logicType) {\n this.element[this.logicType.propertyName] = expression;\n if (\n !expression &&\n Serializer.isDescendantOf(this.element.getType(), \"surveytrigger\")\n ) {\n var index = this.survey.triggers.indexOf(<SurveyTrigger>this.element);\n if (index > -1) {\n this.survey.triggers.splice(index, 1);\n }\n }\n }\n }\n public renameQuestion(oldName: string, newName: string): void {\n if (!this.element) return;\n var names = this.questionNames;\n for (var i = 0; i < names.length; i++) {\n var str = this.element[names[i]];\n if (!!str && str.toLowerCase() == oldName.toLowerCase()) {\n this.element[names[i]] = newName;\n }\n }\n }\n public clone(): SurveyLogicAction {\n const el = this.logicType.cloneElement(this.element);\n return new SurveyLogicAction(this.logicType, el, this.survey);\n }\n public equals(action: SurveyLogicAction): boolean {\n if(this.logicType !== action.logicType) return false;\n return this.logicType.areElementsEqual(this.element, action.element);\n }\n public get name(): string {\n return !!this.logicType ? this.logicType.displayName : \"\";\n }\n public get logicTypeName(): string {\n return !!this.logicType ? this.logicType.name : undefined;\n }\n public get logicTypeDescription(): string {\n return !!this.logicType ? this.logicType.description : \"\";\n }\n public get text(): string {\n return !!this.logicType ? this.logicType.getDisplayText(this.element) : \"\";\n }\n public get deleteActionText(): string {\n return getLogicString(\"deleteAction\");\n }\n public getLocString(name: string) {\n return editorLocalization.getString(name);\n }\n public isSuitableByQuestionName(questionName: string): boolean {\n let res = this.elementName === questionName || this.elementName.indexOf(questionName + \".\") === 0;\n if (!res) {\n res = this.questionNamesValues.filter(question => { return question === questionName || question.indexOf(questionName + \".\") === 0; }).length > 0;\n }\n return res;\n }\n public isSuitableByLogicType(logicTypeName: string): boolean {\n if (!this.logicTypeName) return true;\n return logicTypeName === this.logicTypeName;\n }\n public addQuestionNames(names: string[]) {\n const name = this.elementOwnerName;\n if (!!this.elementName && names.indexOf(name) === -1) {\n names.push(name);\n }\n this.questionNamesValues.forEach(name => {\n if (!!name && names.indexOf(name) === -1) {\n names.push(name);\n }\n });\n }\n private get questionNames(): Array<string> {\n if (!this.logicType || !this.logicType.questionNames) return [];\n return this.logicType.questionNames;\n }\n public get elementName(): string {\n if(!this.element) return \"\";\n var prefix = \"\";\n const owner = this.getOwnerElement();\n if(!!owner && owner !== this.element) {\n prefix = (<any>owner).name + \".\";\n }\n return (prefix + (<any>this.element).name) || \"\";\n }\n private get elementOwnerName(): string {\n const owner = this.getOwnerElement();\n return !!owner ? (<any>owner).name || \"\" : \"\";\n }\n private getOwnerElement() : Base {\n if(!this.element) return null;\n const parentElement = this.parentElement;\n return !!parentElement ? parentElement : this.element;\n }\n private get questionNamesValues(): Array<string> {\n return this.questionNames.map(name => this.element[name]);\n }\n}\n\nexport interface ISurveyLogicItemOwner {\n survey: SurveyModel;\n readOnly: boolean;\n editItem(item: SurveyLogicItem);\n removeItem(item: SurveyLogicItem);\n getExpressionAsDisplayText(expression: string): string;\n getVisibleLogicTypes(): Array<SurveyLogicType>;\n}\n\nexport class SurveyLogicItem {\n private static counter = 0;\n private idValue = ++SurveyLogicItem.counter;\n private removedActions: Array<SurveyLogicAction>;\n private actionsValue: Array<SurveyLogicAction>;\n public isNew: boolean = false;\n public isModified: boolean = false;\n constructor(\n private owner: ISurveyLogicItemOwner,\n public expression: string = \"\"\n ) {\n this.actionsValue = [];\n this.removedActions = [];\n }\n public get actions(): Array<SurveyLogicAction> {\n return this.actionsValue;\n }\n public get id(): number { return this.idValue; }\n public get name(): string {\n return \"logicItem\" + this.id;\n }\n public get survey(): SurveyModel {\n return this.owner.survey;\n }\n public getVisibleLogicTypes(): Array<SurveyLogicType> {\n return this.owner.getVisibleLogicTypes();\n }\n public get expressionText() {\n const text = this.getExpressionAsDisplayText();\n if (!text) return editorLocalization.getString(\"ed.lg.itemEmptyExpressionText\");\n return text;\n }\n public get actionsText() {\n return this.actions.map(action => action.text).join(\", \");\n }\n\n public getDisplayText() {\n const conditionText = this.getExpressionAsDisplayText();\n let actionsText = \"\";\n this.actions.forEach(action => {\n actionsText += (\", \" + action.text);\n });\n\n if (!!conditionText && !!actionsText) {\n const text = this.ifText + \" \" + conditionText + actionsText;\n return text.replace(new RegExp(\"({|})\", \"gm\"), \"'\");\n } else {\n return editorLocalization.getString(\"ed.lg.itemEmptyExpressionText\");\n }\n }\n\n public edit() {\n if (!!this.owner) {\n this.owner.editItem(this);\n }\n }\n public remove() {\n if (!!this.owner) {\n this.owner.removeItem(this);\n }\n }\n public get isReadOnly() {\n return !!this.owner && this.owner.readOnly;\n }\n public addNewAction(action: SurveyLogicAction) {\n this.actions.push(action);\n }\n public removeAction(action: SurveyLogicAction) {\n this.replaceActionCore(null, action);\n }\n public replaceAction(\n newAction: SurveyLogicAction,\n oldAction: SurveyLogicAction\n ) {\n if (!!oldAction) {\n this.replaceActionCore(newAction, oldAction);\n } else {\n this.addNewAction(newAction);\n }\n }\n public clone(): SurveyLogicItem {\n const res = new SurveyLogicItem(this.owner, this.expression);\n for(var i = 0; i < this.actions.length; i ++) {\n res.addNewAction(this.actions[i].clone());\n }\n return res;\n }\n public equals(item: SurveyLogicItem): boolean {\n if(this.expression !== item.expression) return false;\n if(this.actions.length !== item.actions.length) return false;\n for(let i = 0; i < this.actions.length; i ++) {\n if(!this.actions[i].equals(item.actions[i])) return false;\n }\n return true;\n }\n private replaceActionCore(\n newAction: SurveyLogicAction,\n oldAction: SurveyLogicAction\n ) {\n this.removedActions.push(oldAction);\n var index = this.actions.indexOf(oldAction);\n if (index > -1) {\n if (!!newAction) {\n this.actions.splice(index, 1, newAction);\n } else {\n this.actions.splice(index, 1);\n }\n }\n }\n public apply(expression: string) {\n if (!expression) {\n this.removeActions();\n } else {\n this.removeSameActions();\n }\n for (var i = 0; i < this.removedActions.length; i++) {\n this.removedActions[i].apply(\"\");\n }\n this.removedActions = [];\n this.applyExpression(expression, false);\n }\n public renameQuestion(oldName: string, newName: string): void {\n if (!oldName || !newName) return;\n this.renameQuestionInExpression(oldName, newName, [settings.logic.closeBracket, \".\", \"[\"]);\n var ops = this.actions;\n for (var i = 0; i < ops.length; i++) {\n ops[i].renameQuestion(oldName, newName);\n }\n }\n public renameColumn(question: Question, column: MatrixDropdownColumn, oldName: string): void {\n if (!this.canUpdateExpressionByQuestion(question)) return;\n if(this.actions[0].parentElement === question) {\n this.renameQuestionInExpression(\"row.\" + oldName, \"row.\" + column.name, [settings.logic.closeBracket]);\n }\n const rows: Array<ItemValue> = question[\"rows\"];\n if(!Array.isArray(rows) || !this.isQuestionInExpression(question)) return;\n const questionPrefix = this.getItemValueQuestionName(question) + \".\";\n for(var i = 0; i < rows.length; i ++) {\n if(Helpers.isValueEmpty(rows[i].value)) continue;\n const rowName = rows[i].value.toString() + \".\";\n this.renameQuestionInExpression(questionPrefix + rowName + oldName, questionPrefix + rowName + column.name, [settings.logic.closeBracket]);\n }\n }\n public renameItemValue(question: Question, item: ItemValue, oldValue: any): void {\n if (!this.canUpdateExpressionByQuestion(question)) return;\n if(!!question.parentQuestion) {\n if(Array.isArray(question.parentQuestion[\"rows\"])) {\n this.renameDropdownColumnItemValue(question, item, oldValue);\n }\n if(this.actions[0].parentElement !== question.parentQuestion) return;\n }\n if(!this.isQuestionInExpression(question)) return;\n const questionName = this.getItemValueQuestionName(question).toLocaleLowerCase();\n const rows: Array<ItemValue> = question[\"rows\"];\n let newExpression = this.expression;\n if(!Array.isArray(rows)) {\n newExpression = updateLogicExpression(newExpression, questionName, oldValue, item.value);\n } else {\n for(var i = 0; i < rows.length; i ++) {\n if(Helpers.isValueEmpty(rows[i].value)) continue;\n const rowName = \".\" + rows[i].value.toString();\n newExpression = updateLogicExpression(newExpression, questionName + rowName, oldValue, item.value);\n }\n }\n if (newExpression != this.expression) {\n this.applyExpression(newExpression, true);\n }\n }\n private renameDropdownColumnItemValue(question: Question, item: ItemValue, oldValue: any): void {\n const matrix: Question = question.parentQuestion;\n if(!this.isQuestionInExpression(matrix)) return;\n const columnPostFix = \".\" + question.getValueName();\n if(!this.isStrContainsInExpression(columnPostFix + settings.logic.closeBracket)) return;\n const questionPrefix = matrix.getValueName() + \".\";\n const rows: Array<ItemValue> = matrix[\"rows\"];\n let newExpression = this.expression;\n for(var i = 0; i < rows.length; i ++) {\n if(Helpers.isValueEmpty(rows[i].value)) continue;\n const rowName = rows[i].value.toString();\n newExpression = updateLogicExpression(newExpression, questionPrefix + rowName + columnPostFix, oldValue, item.value);\n }\n if (newExpression != this.expression) {\n this.applyExpression(newExpression, true);\n }\n }\n public renameRowValue(question: Question, item: ItemValue, oldValue: any): void {\n if (!this.canUpdateExpressionByQuestion(question) || !this.isQuestionInExpression(question)) return;\n const questionName = this.getItemValueQuestionName(question);\n this.renameQuestionInExpression(questionName + \".\" + oldValue.toString(), questionName + \".\" + item.value.toString(), [settings.logic.closeBracket, \".\"]);\n }\n private canUpdateExpressionByQuestion(question: Question): boolean {\n return !!this.expression && !!question.name && this.actions.length > 0;\n }\n private isQuestionInExpression(question: Question): boolean {\n return this.isStrContainsInExpression(this.getItemValueQuestionName(question).toLocaleLowerCase());\n }\n private isStrContainsInExpression(str: string): boolean {\n if(!str) return false;\n return this.expression.toLocaleLowerCase().indexOf(str.toLocaleLowerCase()) > -1;\n }\n private getItemValueQuestionName(question: Question): string {\n const valName = question.getValueName();\n if(!!question.parentQuestion) {\n if(question.parentQuestion.isDescendantOf(\"paneldynamic\")) return \"panel.\" + valName;\n if(question.parentQuestion.isDescendantOf(\"matrixdropdownbase\")) return \"row.\" + valName;\n }\n return valName;\n }\n public removeQuestion(name: string): void {\n this.removeQuestionInExpression(name);\n }\n public getQuestionNames(): string[] {\n const res = [];\n this.getQuestionNamesFromExpression(res);\n this.getQuestionNamesFromActions(res);\n return res;\n }\n public getActionTypes(): string[] {\n return this.actions.map(action => action.logicTypeName);\n }\n public getContext(): Base {\n const exp = this.expression;\n if(!exp) return null;\n if(!SurveyHelper.getQuestionContextIndexInfo(exp, \"{\")) return null;\n for(var i = 0; i < this.actions.length; i ++) {\n const parentEl = this.actions[i].parentElement;\n if(!!parentEl) {\n return parentEl;\n }\n }\n return null;\n }\n private getQuestionNamesFromExpression(names: string[]) {\n const conditionRunner = new ConditionRunner(this.expression);\n conditionRunner.getVariables().forEach(item => {\n if (names.indexOf(item) === -1)\n names.push(item);\n });\n }\n private getQuestionNamesFromActions(names: string[]) {\n this.actions.forEach(action => action.addQuestionNames(names));\n }\n private getExpressionAsDisplayText(): string {\n return !!this.owner\n ? this.owner.getExpressionAsDisplayText(this.expression)\n : this.expression;\n }\n public get editText(): string {\n return editorLocalization.getString(\"pe.edit\");\n }\n public get deleteText(): string {\n return editorLocalization.getString(\"pe.delete\");\n }\n public get ifText(): string {\n return editorLocalization.getString(\"pe.if\");\n }\n public isSuitable(filteredName: string, logicTypeName: string = \"\"): boolean {\n if (!filteredName && !logicTypeName) return true;\n if (!filteredName) {\n return this.isSuitableByLogicTypeInActions(logicTypeName);\n }\n if (!logicTypeName) {\n return this.isSuitableInExpression(filteredName) || this.isSuitableByNameInActions(filteredName);\n }\n return (this.isSuitableInExpression(filteredName) || this.isSuitableByNameInActions(filteredName)) && this.isSuitableByLogicTypeInActions(logicTypeName);\n }\n private isSuitableInExpression(filteredName: string): boolean {\n return this.expression.indexOf(wrapTextByCurlyBraces(filteredName)) !== -1 || this.expression.indexOf(\"'\" + filteredName + \".\") !== -1;\n }\n private isSuitableByNameInActions(filteredName: string): boolean {\n return this.actions.some(action => action.isSuitableByQuestionName(filteredName));\n }\n private isSuitableByLogicTypeInActions(logicTypeName: string): boolean {\n return this.actions.some(action => action.isSuitableByLogicType(logicTypeName));\n }\n private renameQuestionInExpression(oldName: string, newName: string, postFixes: Array<string>): void {\n if (!this.expression) return;\n oldName = oldName.toLowerCase();\n if(!this.isStrContainsInExpression(oldName)) return;\n const ob = settings.logic.openBracket;\n oldName = ob + oldName;\n newName = ob + newName;\n let newExpression = this.expression;\n postFixes.forEach(ch => {\n newExpression = this.renameQuestionInExpressionCore(newExpression, newExpression.toLocaleLowerCase(), oldName + ch, newName + ch);\n });\n if (newExpression != this.expression) {\n this.applyExpression(newExpression, true);\n }\n }\n private renameQuestionInExpressionCore(expression: string, lowCaseExpression: string, oldSubStr: string, newSubStr: string): string {\n var index = lowCaseExpression.lastIndexOf(oldSubStr, lowCaseExpression.length);\n while (index > -1) {\n expression = expression.substring(0, index) + newSubStr + expression.substring(index + oldSubStr.length);\n lowCaseExpression = lowCaseExpression.substring(0, index);\n index = lowCaseExpression.lastIndexOf(oldSubStr, index);\n }\n return expression;\n }\n private removeQuestionInExpression(name: string) {\n if (!this.expression) return;\n var expR = new ExpressionRemoveVariable();\n var newExpression = expR.remove(this.expression, name);\n if (newExpression != this.expression) {\n this.applyExpression(newExpression, true);\n }\n }\n private applyExpression(expression: string, isRenaming: boolean) {\n this.expression = expression;\n var ops = this.actions;\n for (var i = 0; i < ops.length; i++) {\n ops[i].apply(expression, isRenaming);\n }\n }\n private removeActions() {\n var ops = this.actions;\n for (var i = ops.length - 1; i >= 0; i--) {\n this.removeAction(ops[i]);\n }\n }\n private removeSameActions() {\n var ops = this.actions;\n for (var i = ops.length - 1; i >= 0; i--) {\n for (var j = i - 1; j >= 0; j--) {\n if (ops[i].equals(ops[j])) {\n this.removeAction(ops[i]);\n break;\n }\n }\n }\n }\n}\n","import { BaseAction, Action, IAction, PopupModel, ListModel, ComputedUpdater } from \"survey-core\";\nimport { getLogicString } from \"./logic-types\";\nimport { CreatorBase, ICreatorPlugin } from \"../../creator-base\";\nimport { editorLocalization } from \"../../editorLocalization\";\nimport { SurveyLogicUI } from \"./logic-ui\";\nimport { SurveyHelper } from \"../../survey-helper\";\n\nexport class TabLogicPlugin implements ICreatorPlugin {\n private filterQuestionAction: Action;\n private filterActionTypeAction: Action;\n private fastEntryAction: Action;\n public model: SurveyLogicUI;\n constructor(private creator: CreatorBase) {\n creator.addPluginTab(\"logic\", this);\n this.createActions().forEach(action => creator.toolbar.actions.push(action));\n }\n public activate(): void {\n this.model = new SurveyLogicUI(this.creator.survey, this.creator);\n\n this.filterQuestionAction.title = this.createFilterQuestionTitleUpdater();\n this.filterQuestionAction.visible = true;\n this.filterActionTypeAction.title = this.createFilterTypeTitleUpdater();\n this.filterActionTypeAction.visible = true;\n\n if (this.fastEntryAction) {\n this.fastEntryAction.visible = true;\n this.fastEntryAction.active = this.model.expressionEditorIsFastEntry;\n this.fastEntryAction.enabled = false;\n }\n\n this.model.onPropertyChanged.add((sender, options) => {\n if (!!this.fastEntryAction && options.name === \"expressionEditorIsFastEntry\") {\n this.fastEntryAction.active = this.model.expressionEditorIsFastEntry;\n }\n if (!!this.fastEntryAction && options.name === \"expressionEditorCanShowBuilder\") {\n this.fastEntryAction.enabled = this.model.expressionEditorCanShowBuilder;\n }\n });\n }\n private createFilterTypeTitleUpdater(): any {\n return <any>new ComputedUpdater<string>(() => {\n let loc = this.creator.locale;\n if(!loc) loc = \"en\";\n const type = this.model.actionTypeFilter;\n const allType = this.showAllActionTypesText;\n return !!type ? this.model.getTypeByName(type).displayName : allType; });\n }\n private createFilterQuestionTitleUpdater(): any {\n return <any>new ComputedUpdater<string>(() => {\n let loc = this.creator.locale;\n if(!loc) loc = \"en\";\n const questionFilter = this.model.questionFilter;\n const allQuestions = this.showAllQuestionsText;\n return !!questionFilter ? questionFilter : allQuestions; });\n }\n public update(): void {\n if (!this.model) return;\n this.model.update(this.creator.survey);\n }\n public deactivate(): boolean {\n if (!!this.model && this.model.haveUnsavedRules()) {\n this.creator.notify(editorLocalization.getString(\"ed.lg.expressionInvalid\"), \"error\");\n return false;\n }\n\n this.filterActionTypeAction.title = undefined;\n this.filterQuestionAction.title = undefined;\n if (this.model) {\n this.model.dispose();\n this.model = undefined;\n }\n\n this.filterQuestionAction.visible = false;\n this.filterActionTypeAction.visible = false;\n this.fastEntryAction && (this.fastEntryAction.visible = false);\n\n return true;\n }\n public createActions() {\n const items: Array<Action> = [];\n const onQuestionPopupShow = () => {\n const items = this.model.getUsedQuestions().map(question => { return { id: question.name, title: this.creator.getObjectDisplayName(question, \"logic-tab:question-filter\", \"condition\", question.name) }; });\n SurveyHelper.sortItems(items, \"title\");\n questionPopupModel.contentComponentData.model.setItems([{ id: null, title: this.showAllQuestionsText }].concat(items));\n };\n const questionListModel = new ListModel(\n [{ id: null, title: this.showAllQuestionsText }],\n (item: IAction) => {\n this.model.questionFilter = !!item.id ? item.id : \"\";\n questionPopupModel.toggleVisibility();\n }, true);\n questionListModel.locOwner = this.creator;\n const questionPopupModel = new PopupModel<{ model: ListModel<BaseAction> }>(\n \"sv-list\", { model: questionListModel }, \"bottom\", \"center\",\n undefined, undefined, undefined, undefined, undefined, onQuestionPopupShow\n );\n\n this.filterQuestionAction = new Action({\n id: \"svc-logic-filter-question\",\n visible: false,\n component: \"sv-action-bar-item-dropdown\",\n popupModel: questionPopupModel,\n action: () => { questionPopupModel.toggleVisibility(); }\n });\n items.push(this.filterQuestionAction);\n\n const onActionTypesPopupShow = () => {\n const items = this.model.getUsedActionTypes().map(type => { return { id: type.name, title: type.displayName }; });\n SurveyHelper.sortItems(items, \"title\");\n actionTypesPopupModel.contentComponentData.model.setItems([{ id: null, title: this.showAllActionTypesText }].concat(items));\n };\n const actionTypesListModel = new ListModel(\n [{ id: null, title: this.showAllActionTypesText }],\n (item: IAction) => {\n this.model.actionTypeFilter = !!item.id ? item.id : \"\";\n actionTypesPopupModel.toggleVisibility();\n }, true);\n actionTypesListModel.locOwner = this.creator;\n const actionTypesPopupModel = new PopupModel<{ model: ListModel<BaseAction> }>(\n \"sv-list\", { model: actionTypesListModel }, \"bottom\", \"center\",\n undefined, undefined, undefined, undefined, undefined, onActionTypesPopupShow\n );\n\n this.filterActionTypeAction = new Action({\n id: \"svc-logic-filter-actiontype\",\n visible: false,\n component: \"sv-action-bar-item-dropdown\",\n popupModel: actionTypesPopupModel,\n action: () => { actionTypesPopupModel.toggleVisibility(); }\n });\n items.push(this.filterActionTypeAction);\n\n if (this.creator.allowEditExpressionsInTextEditor) {\n this.fastEntryAction = new Action({\n id: \"svc-logic-fast-entry\",\n iconName: \"icon-fast-entry\",\n locTitleName: \"pe.fastEntry\",\n visible: false,\n component: \"sv-action-bar-item\",\n action: () => {\n this.model.toggleExpressionEditorIsFastEntry();\n }\n });\n items.push(this.fastEntryAction);\n }\n return items;\n }\n private get showAllQuestionsText() { return getLogicString(\"showAllQuestions\"); }\n private get showAllActionTypesText() { return getLogicString(\"showAllActionTypes\"); }\n}\n","import { defaultActionBarCss } from \"survey-core\";\n\nexport var logicCss = {\n root: \"\",\n container: \"\",\n header: \"\",\n body: \"sl-body\",\n bodyEmpty: \"\",\n footer: \"\",\n title: \"\",\n description: \"\",\n logo: \"\",\n logoImage: \"\",\n headerText: \"\",\n navigationButton: \"\",\n completedPage: \"\",\n navigation: {\n complete: \"\",\n prev: \"\",\n next: \"\",\n start: \"\",\n preview: \"\",\n edit: \"\"\n },\n panel: {\n title: \"\",\n titleExpandable: \"\",\n titleOnExpand: \"\",\n titleOnError: \"\",\n description: \"\",\n container: \"sl-panel\",\n content: \"\",\n icon: \"\",\n iconExpanded: \"\",\n footer: \"sl-panel__footer\",\n requiredText: \"sl-panel__required-text\"\n },\n paneldynamic: {\n mainRoot: \"\",\n root: \"\",\n navigation: \"\",\n title: \"\",\n button: \"\",\n buttonRemove: \"\",\n buttonAdd: \"svc-logic-operator sl-paneldynamic__add-btn\",\n progressTop: \"\",\n progressBottom: \"\",\n buttonPrev: \"\",\n buttonNext: \"\",\n progressContainer: \"\",\n progress: \"\",\n progressBar: \"\",\n progressText: \"\",\n separator: \"sv-hidden\",\n panelWrapper: \"\",\n panelWrapperInRow: \"sl-panel-wrapper--in-row\"\n },\n progress: \"\",\n progressBar: \"\",\n progressText: \"\",\n progressTextInBar: \"\",\n page: {\n root: \"\",\n title: \"\",\n description: \"\"\n },\n pageTitle: \"\",\n pageDescription: \"\",\n row: \"sl-row\",\n rowMultiple: \"sl-row--multiple\",\n question: {\n mainRoot: \"sl-question\",\n flowRoot: \"\",\n asCell: \"\",\n header: \"sl-question__header\",\n headerLeft: \"sl-question__header--left\",\n headerTop: \"\",\n headerBottom: \"\",\n content: \"\",\n contentLeft: \"\",\n titleLeftRoot: \"\",\n titleOnAnswer: \"\",\n titleOnError: \"\",\n title: \"sl-question__title\",\n requiredText: \"sl-question__required-text\",\n number: \"\",\n description: \"\",\n descriptionUnderInput: \"\",\n comment: \"\",\n required: \"\",\n titleRequired: \"\",\n indent: 0,\n footer: \"\",\n formGroup: \"\",\n hasError: \"\",\n disabled: \"\"\n },\n image: { root: \"\" },\n error: {\n root: \"\",\n icon: \"\",\n item: \"\",\n locationTop: \"\",\n locationBottom: \"\"\n },\n checkbox: {\n root: \"\",\n item: \"\",\n itemSelectAll: \"\",\n itemNone: \"\",\n itemDisabled: \"\",\n itemChecked: \"\",\n itemHover: \"\",\n itemInline: \"\",\n label: \"\",\n labelChecked: \"\",\n itemControl: \"\",\n itemDecorator: \"\",\n controlLabel: \"\",\n materialDecorator: \"\",\n other: \"\",\n column: \"\"\n },\n radiogroup: {\n root: \"\",\n item: \"\",\n itemInline: \"\",\n label: \"\",\n labelChecked: \"\",\n itemDisabled: \"\",\n itemChecked: \"\",\n itemHover: \"\",\n itemControl: \"\",\n itemDecorator: \"\",\n controlLabel: \"\",\n materialDecorator: \"\",\n other: \"\",\n clearButton: \"\",\n column: \"\"\n },\n boolean: {\n mainRoot: \"\",\n root: \"\",\n item: \"\",\n control: \"\",\n itemChecked: \"\",\n itemIndeterminate: \"\",\n itemDisabled: \"\",\n label: \"\",\n switch: \"\",\n disabledLabel: \"\",\n itemDecorator: \"\",\n materialDecorator: \"\",\n sliderText: \"\",\n slider: \"\"\n },\n text: {\n root: \"\",\n small: \"\",\n controlDisabled: \"\",\n onError: \"\"\n },\n multipletext: {\n root: \"\",\n item: \"\",\n itemTitle: \"\",\n row: \"\",\n cell: \"\"\n },\n dropdown: {\n root: \"\",\n popup: \"\",\n small: \"\",\n control: \"sl-dropdown\",\n selectWrapper: \"\",\n other: \"\",\n onError: \"\",\n label: \"\",\n item: \"\",\n itemDisabled: \"\",\n itemChecked: \"\",\n itemHover: \"\",\n itemControl: \"\",\n itemDecorator: \"\",\n controlDisabled: \"\",\n controlLabel: \"\",\n materialDecorator: \"\",\n controlValue: \"sl-dropdown__value\",\n },\n imagepicker: {\n root: \"\",\n item: \"\",\n itemInline: \"\",\n itemChecked: \"\",\n itemDisabled: \"\",\n itemHover: \"\",\n label: \"\",\n itemControl: \"\",\n image: \"\",\n itemText: \"\",\n clearButton: \"\",\n other: \"\"\n },\n matrix: {\n mainRoot: \"\",\n tableWrapper: \"\",\n root: \"\",\n row: \"\",\n rowAdditional: \"\",\n rowError: \"\",\n cell: \"\",\n headerCell: \"\",\n label: \"\",\n itemValue: \"\",\n itemChecked: \"\",\n itemDisabled: \"\",\n itemHover: \"\",\n materialDecorator: \"\",\n itemDecorator: \"\",\n cellText: \"\",\n cellTextSelected: \"\",\n cellTextDisabled: \"\"\n },\n matrixdropdown: {\n tableWrapper: \"\",\n mainRoot: \"\",\n root: \"\",\n row: \"\",\n rowAdditional: \"\",\n cell: \"\",\n headerCell: \"\"\n },\n matrixdynamic: {\n tableWrapper: \"\",\n mainRoot: \"sl-question st-row__question st-scrollable\",\n root: \"sl-table st-matrixdynamic\",\n row: \"sl-table__row\",\n rowAdditional: \"sl-table__row--additional\",\n cell: \"sl-table__cell\",\n headerCell: \"sl-table__cell st-table__cell--header\",\n button: \"sl-btn\",\n detailRow: \"sl-table__row st-table__row--detail\",\n detailButton: \"sl-table__cell--detail-button\",\n detailButtonExpanded: \"sl-table__cell--detail-button--expanded\",\n detailIcon: \"sl-detail-panel__icon\",\n detailIconExpanded: \"sl-detail-panel__icon--expanded\",\n detailPanelCell: \"sl-table__cell--detail-panel\",\n actionsCell: \"sl-table__cell sl-table__cell--actions st-table__cell--actions\",\n buttonAdd: \"sl-matrixdynamic__add-btn\",\n buttonRemove: \"sl-matrixdynamic__remove-btn\",\n iconAdd: \"\",\n iconRemove: \"\"\n },\n rating: {\n root: \"\",\n item: \"\",\n itemHover: \"\",\n selected: \"\",\n minText: \"\",\n itemText: \"\",\n maxText: \"\",\n itemDisabled: \"\"\n },\n comment: {\n mainRoot: \"\",\n root: \"spg-input spg-comment sl-comment\",\n small: \"\"\n },\n expression: \"\",\n file: {\n root: \"\",\n other: \"\",\n placeholderInput: \"\",\n preview: \"\",\n fileSign: \"\",\n fileSignBottom: \"\",\n fileDecorator: \"\",\n fileInput: \"\",\n noFileChosen: \"\",\n chooseFile: \"\",\n disabled: \"\",\n removeButton: \"\",\n removeButtonBottom: \"\",\n removeFile: \"\",\n removeFileSvg: \"\",\n wrapper: \"\"\n },\n signaturepad: {\n root: \"\",\n small: \"\",\n controls: \"\",\n placeholder: \"\",\n clearButton: \"\"\n },\n saveData: {\n root: \"\",\n saving: \"\",\n error: \"\",\n success: \"\",\n saveAgainButton: \"\"\n },\n window: {\n root: \"\",\n body: \"\",\n header: {\n root: \"\",\n title: \"\",\n button: \"\",\n buttonExpanded: \"\",\n buttonCollapsed: \"\"\n }\n },\n embeddedsurvey: {\n mainRoot: \"sl-embedded-survey\"\n },\n actionBar: defaultActionBarCss\n};","import {\n SurveyModel,\n Base,\n HtmlConditionItem,\n SurveyTrigger,\n Serializer,\n Helpers,\n Question,\n QuestionMatrixDropdownModelBase,\n SurveyElement,\n QuestionPanelDynamicModel\n} from \"survey-core\";\nimport { editorLocalization } from \"../../editorLocalization\";\nimport { ExpressionToDisplayText } from \"../../expressionToDisplayText\";\nimport { ISurveyCreatorOptions } from \"../../creator-settings\";\nimport { wrapTextByCurlyBraces } from \"../../utils/utils\";\n\nexport function getLogicString(name: string) {\n return editorLocalization.getString(\"ed.lg.\" + name);\n}\n\nexport interface ISurveyLogicType {\n name: string;\n baseClass: string;\n propertyName: string;\n dynamicPropertyName?: string;\n dependedOnPropertyName?: string;\n isInvisible?: boolean;\n showInUI?: boolean;\n showIf?: (survey: SurveyModel) => boolean;\n getCollection?: (survey: SurveyModel) => Array<Base>;\n isUniqueItem?: boolean;\n questionNames?: Array<string>;\n getDisplayText?: (\n element: Base,\n formatStr: string,\n lt: SurveyLogicType\n ) => string;\n getElementName?: (element: Base) => string;\n getSelectorChoices?: (survey: SurveyModel, context: Question) => Array<SurveyElement<any>>;\n supportContext?: (question: Base) => boolean;\n getParentElement?(element: Base): Base;\n}\n\nexport class SurveyLogicType {\n public static expressionToDisplayText(\n survey: SurveyModel,\n options: ISurveyCreatorOptions,\n expression: string\n ): string {\n return new ExpressionToDisplayText(survey, options).toDisplayText(\n expression\n );\n }\n constructor(\n private logicType: ISurveyLogicType,\n public survey: SurveyModel,\n public options: ISurveyCreatorOptions = null\n ) {\n this.mergeWithBaseClass();\n }\n private mergeWithBaseClass() {\n if (!this.logicType.baseClass) return;\n const baseClass = SurveyLogicTypes.baseTypes[this.logicType.baseClass];\n if (!baseClass) return;\n for (var key in baseClass) {\n if (!this.logicType[key]) {\n this.logicType[key] = baseClass[key];\n }\n }\n }\n public get name(): string {\n return this.logicType.name;\n }\n public get baseClass(): string {\n return this.logicType.baseClass;\n }\n public get propertyName(): string {\n return this.logicType.propertyName;\n }\n public get hasVisibleElements(): boolean {\n return this.logicType.isInvisible !== true;\n }\n public get dynamicPropertyName(): string {\n return this.logicType.dynamicPropertyName;\n }\n public get dependedOnPropertyName(): string {\n return this.logicType.dependedOnPropertyName;\n }\n public get visible(): boolean {\n if (!this.showInUI) return false;\n if (!!this.logicType.showIf) return this.logicType.showIf(this.survey);\n return true;\n }\n public get showTitlesInExpression(): boolean {\n return !!this.options && this.options.showTitlesInExpressions;\n }\n public createNewObj(srcObj: Base): Base {\n const obj = <Base>Serializer.createClass(this.baseClass);\n if (!!srcObj) {\n obj.fromJSON(srcObj.toJSON());\n }\n //TODO\n obj[\"survey\"] = this.survey;\n if ((<any>obj).setOwner) {\n (<any>obj).setOwner(this.survey);\n }\n return obj;\n }\n public cloneElement(el: Base): Base {\n if (this.isTrigger) return this.createNewObj(el);\n return el;\n }\n public areElementsEqual(el1: Base, el2: Base): boolean {\n if (el1 === el2) return true;\n if (!this.isTrigger || el1.getType() !== el2.getType()) return false;\n return Helpers.isTwoValueEquals(el1.toJSON(), el2.toJSON());\n }\n public saveNewElement(el: Base): void {\n var collection: Array<Base> = !!this.logicType.getCollection\n ? this.logicType.getCollection(this.survey)\n : null;\n if (!collection && this.isTrigger) {\n collection = this.survey.triggers;\n }\n if (!!collection && collection.indexOf(el) < 0) {\n collection.push(el);\n }\n }\n public get showInUI(): boolean {\n return this.logicType.showInUI !== false;\n }\n public get isUniqueItem(): boolean {\n return this.logicType.isUniqueItem === true;\n }\n public get questionNames(): Array<string> {\n return this.logicType.questionNames;\n }\n public get displayName(): string {\n return getLogicString(this.name + \"Name\");\n }\n public get description(): string {\n return getLogicString(this.name + \"Description\");\n }\n public getParentElement(element: Base): Base {\n return !!this.logicType.getParentElement ? this.logicType.getParentElement(element) : null;\n }\n public get hasSelectorChoices(): boolean {\n return !!this.logicType.getSelectorChoices;\n }\n public getSelectorChoices(survey: SurveyModel, context: Question): Array<SurveyElement<any>> {\n if (!this.hasSelectorChoices) return null;\n return this.logicType.getSelectorChoices(survey, context);\n }\n public getDisplayText(element: Base): string {\n var str = getLogicString(this.name + \"Text\");\n if (!!this.logicType.getDisplayText)\n return this.logicType.getDisplayText(element, str, this);\n if (!!this.logicType.getElementName) {\n element = this.getElementByName(this.logicType.getElementName(element));\n }\n const name = this.getElementDisplayName(element);\n if (!!name) {\n const parentElement = this.getParentElement(element);\n const parentName = this.getElementDisplayName(parentElement);\n return str[\"format\"](name, parentName);\n }\n return str;\n }\n private getElementDisplayName(element: Base): string {\n if (!element) return \"\";\n let res = \"\";\n if (this.showTitlesInExpression) {\n res = element[\"title\"];\n }\n if (!res) {\n res = element[\"name\"] || \"\";\n }\n return wrapTextByCurlyBraces(res);\n }\n private getElementByName(name: string): Base {\n if (!this.survey) return null;\n const question = this.survey.getQuestionByName(name);\n if (!!question) return question;\n return this.survey.getPageByName(name);\n }\n public formatElName(name: string): string {\n const el = this.getElementByName(name);\n return this.getElementDisplayName(el);\n }\n public formatExpression(expression: string): string {\n return SurveyLogicType.expressionToDisplayText(\n this.survey,\n this.options,\n expression\n );\n }\n public supportContext(context: Base): boolean {\n if (!this.logicType.supportContext) return false;\n return this.logicType.supportContext(context);\n }\n private get isTrigger(): boolean {\n return !!this.baseClass && this.baseClass.indexOf(\"trigger\") > -1;\n }\n}\n\nfunction hasMatrixColumns(survey: SurveyModel): boolean {\n const questions = survey.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n const q = questions[i];\n if (q instanceof QuestionMatrixDropdownModelBase) {\n if ((<QuestionMatrixDropdownModelBase>q).columns.length > 0) return true;\n }\n }\n return false;\n}\n\nexport class SurveyLogicTypes {\n public static baseTypes = {\n panel: {\n showIf: function (survey: SurveyModel): boolean {\n return survey.getAllPanels().length > 0;\n },\n getSelectorChoices(survey: SurveyModel, context: Question): Array<SurveyElement<any>> {\n return <any>survey.getAllPanels();\n }\n },\n question: {\n showIf: function (survey: SurveyModel): boolean {\n return survey.getAllQuestions().length > 0;\n },\n supportContext(context: Base): boolean {\n return Array.isArray(context[\"templateElements\"]);\n },\n getParentElement(element: Base): Base {\n return !!element ? (<Question>element).parentQuestion : null;\n },\n getSelectorChoices(survey: SurveyModel, context: Question): Array<SurveyElement<any>> {\n const res = new Array<SurveyElement<any>>();\n const questions = survey.getAllQuestions();\n const addElement = function(el: any) {\n res.push(el);\n if(el.isPanel) {\n el.elements.forEach(child => addElement(child));\n }\n };\n for (var i = 0; i < questions.length; i++) {\n const q = questions[i];\n if (!context) {\n res.push(q);\n }\n if (q instanceof QuestionPanelDynamicModel && (!context || context === q)) {\n q.templateElements.forEach(el => addElement(el));\n }\n }\n return res;\n }\n },\n matrixdropdowncolumn: {\n showIf: function (survey: SurveyModel): boolean {\n return hasMatrixColumns(survey);\n },\n supportContext(context: Base): boolean {\n return Array.isArray(context[\"columns\"]);\n },\n getParentElement(element: Base): Base {\n return !!element ? (<any>element).colOwner : null;\n },\n getSelectorChoices(survey: SurveyModel, context: Question): Array<SurveyElement<any>> {\n const res = [];\n const questions = survey.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n const question = questions[i];\n if (question instanceof QuestionMatrixDropdownModelBase &&\n (!context || context === question)) {\n const columns = (<QuestionMatrixDropdownModelBase>question).columns;\n for (var j = 0; j < columns.length; j++) {\n res.push(columns[j]);\n }\n }\n }\n return res;\n }\n }\n };\n public static types: Array<ISurveyLogicType> = [\n {\n name: \"page_visibility\",\n baseClass: \"page\",\n propertyName: \"visibleIf\",\n showIf: function (survey: SurveyModel): boolean {\n return survey.pages.length > 1;\n },\n getSelectorChoices(survey: SurveyModel, context: Question): Array<SurveyElement<any>> {\n return survey.pages;\n }\n },\n {\n name: \"page_enable\",\n baseClass: \"page\",\n propertyName: \"enableIf\",\n showIf: function (survey: SurveyModel): boolean {\n return survey.pages.length > 1;\n },\n getSelectorChoices(survey: SurveyModel, context: Question): Array<SurveyElement<any>> {\n return survey.pages;\n }\n },\n {\n name: \"panel_visibility\",\n baseClass: \"panel\",\n propertyName: \"visibleIf\",\n },\n {\n name: \"panel_enable\",\n baseClass: \"panel\",\n propertyName: \"enableIf\",\n },\n {\n name: \"question_visibility\",\n baseClass: \"question\",\n propertyName: \"visibleIf\",\n },\n {\n name: \"question_enable\",\n baseClass: \"question\",\n propertyName: \"enableIf\",\n },\n {\n name: \"question_require\",\n baseClass: \"question\",\n propertyName: \"requiredIf\",\n },\n {\n name: \"column_visibility\",\n baseClass: \"matrixdropdowncolumn\",\n propertyName: \"visibleIf\",\n },\n {\n name: \"column_enable\",\n baseClass: \"matrixdropdowncolumn\",\n propertyName: \"enableIf\",\n },\n {\n name: \"column_require\",\n baseClass: \"matrixdropdowncolumn\",\n propertyName: \"requiredIf\",\n },\n {\n name: \"expression_expression\",\n baseClass: \"expression\",\n propertyName: \"expression\",\n showInUI: false,\n },\n {\n name: \"matrixdropdowncolumn_totalExpression\",\n baseClass: \"matrixdropdowncolumn\",\n propertyName: \"totalExpression\",\n showInUI: false,\n },\n {\n name: \"trigger_complete\",\n baseClass: \"completetrigger\",\n propertyName: \"expression\",\n isUniqueItem: true,\n isInvisible: true\n },\n {\n name: \"trigger_setvalue\",\n baseClass: \"setvaluetrigger\",\n propertyName: \"expression\",\n dynamicPropertyName: \"setValue\",\n dependedOnPropertyName: \"setToName\",\n questionNames: [\"setToName\"],\n getDisplayText: function (\n element: Base,\n formatStr: string,\n lt: SurveyLogicType\n ): string {\n return formatStr[\"format\"](\n lt.formatElName(element[\"setToName\"]),\n element[\"setValue\"]\n );\n },\n },\n {\n name: \"trigger_copyvalue\",\n baseClass: \"copyvaluetrigger\",\n propertyName: \"expression\",\n questionNames: [\"setToName\", \"fromName\"],\n getDisplayText: function (\n element: Base,\n formatStr: string,\n lt: SurveyLogicType\n ): string {\n return formatStr[\"format\"](\n lt.formatElName(element[\"setToName\"]),\n lt.formatElName(element[\"fromName\"])\n );\n },\n },\n {\n name: \"trigger_skip\",\n baseClass: \"skiptrigger\",\n propertyName: \"expression\",\n questionNames: [\"gotoName\"],\n isUniqueItem: true,\n getElementName: function (element: Base): string {\n return element[\"gotoName\"];\n },\n },\n {\n name: \"trigger_runExpression\",\n baseClass: \"runexpressiontrigger\",\n propertyName: \"expression\",\n questionNames: [\"setToName\"],\n getDisplayText: function (\n element: Base,\n formatStr: string,\n lt: SurveyLogicType\n ): string {\n var res = getLogicString(\"trigger_runExpressionText1\");\n res = res[\"format\"](lt.formatExpression(element[\"runExpression\"]));\n var setToName = element[\"setToName\"];\n if (!!setToName) {\n var str = getLogicString(\"trigger_runExpressionText2\");\n res += str[\"format\"](lt.formatElName(element[\"setToName\"]));\n }\n return res;\n },\n },\n {\n name: \"completedHtmlOnCondition\",\n baseClass: \"htmlconditionitem\",\n propertyName: \"expression\",\n isUniqueItem: true,\n getCollection: (survey: SurveyModel): Array<Base> => {\n return survey.completedHtmlOnCondition;\n },\n },\n {\n name: \"trigger_runExpression_Expression\",\n baseClass: \"runexpressiontrigger\",\n propertyName: \"runExpression\",\n showInUI: false,\n },\n {\n name: \"question_expressionValidator\",\n baseClass: \"expressionvalidator\",\n propertyName: \"expression\",\n showInUI: false,\n },\n {\n name: \"matrix_rowsVisibleIf\",\n baseClass: \"matrix\",\n propertyName: \"rowsVisibleIf\",\n showInUI: false,\n },\n {\n name: \"matrix_columnsVisibleIf\",\n baseClass: \"matrix\",\n propertyName: \"columnsVisibleIf\",\n showInUI: false,\n },\n {\n name: \"matrixdropdown_rowsVisibleIf\",\n baseClass: \"matrixdropdown\",\n propertyName: \"rowsVisibleIf\",\n showInUI: false,\n },\n {\n name: \"select_choicesVisibleIf\",\n baseClass: \"selectbase\",\n propertyName: \"choicesVisibleIf\",\n showInUI: false,\n },\n {\n name: \"select_choicesEnableIf\",\n baseClass: \"selectbase\",\n propertyName: \"choicesEnableIf\",\n showInUI: false,\n },\n {\n name: \"itemvalue_visibleIf\",\n baseClass: \"itemvalue\",\n propertyName: \"visibleIf\",\n showInUI: false,\n },\n {\n name: \"itemvalue_enableIf\",\n baseClass: \"itemvalue\",\n propertyName: \"enableIf\",\n showInUI: false,\n },\n {\n name: \"calculatedValue\",\n baseClass: \"calculatedvalue\",\n propertyName: \"expression\",\n showInUI: false,\n },\n ];\n}\n","// extracted by mini-css-extract-plugin","import { SurveyModel, Action, Question, MatrixDropdownRowModelBase, PanelModel, QuestionMatrixDynamicModel, property, HashTable } from \"survey-core\";\nimport { ConditionEditor } from \"../../property-grid/condition-survey\";\nimport { ISurveyCreatorOptions, EmptySurveyCreatorOptions, settings } from \"../../creator-settings\";\nimport { LogicItemEditor } from \"./logic-item-editor\";\nimport { getLogicString } from \"./logic-types\";\nimport { SurveyLogicAction, SurveyLogicItem } from \"./logic-items\";\nimport { SurveyLogic } from \"./logic\";\nimport { setSurveyJSONForPropertyGrid } from \"../../property-grid/index\";\nimport { QuestionEmbeddedSurveyModel } from \"../embedded-survey\";\nimport { updateMatrixLogicRemoveAction, updateMatrixLogicExpandAction } from \"../../utils/actions\";\n\nrequire(\"./logic-ui.scss\");\n\nimport { logicCss } from \"./logic-theme\";\n\ninterface ILogicItemUI {\n expressionEditor: ConditionEditor;\n itemEditor: LogicItemEditor;\n}\n\nexport class SurveyLogicUI extends SurveyLogic {\n private expressionEditorValue: ConditionEditor;\n private itemEditorValue: LogicItemEditor;\n @property() itemsSurveyValue: SurveyModel;\n @property() expressionEditorIsFastEntry: boolean;\n @property() expressionEditorCanShowBuilder: boolean;\n private visibleItems: SurveyLogicItem[];\n private itemUIHash: HashTable<ILogicItemUI> = {};\n public addNewButton: Action;\n\n constructor(\n public survey: SurveyModel,\n public options: ISurveyCreatorOptions = null\n ) {\n super(survey, options);\n if (!this.options) this.options = new EmptySurveyCreatorOptions();\n this.setupToolbarItems();\n this.update();\n }\n public update(\n survey: SurveyModel = null,\n options: ISurveyCreatorOptions = null\n ) {\n super.update(survey, options);\n const newItemsSurveyValue = this.options.createSurvey(this.getLogicItemSurveyJSON(), \"logic-items\");\n newItemsSurveyValue.css = logicCss;\n this.itemsSurveyValue = newItemsSurveyValue;\n this.itemsSurvey.onMatrixRowRemoving.add((sender, options) => {\n const item = this.visibleItems[options.rowIndex];\n options.allow = this.canRemoveItem(item);\n });\n this.itemsSurvey.onMatrixRowRemoved.add((sender, options) => {\n const item = this.visibleItems[options.rowIndex];\n const isDeleteEditable = item === this.editableItem;\n this.removeItem(item, false);\n if (isDeleteEditable) {\n this.mode = \"view\";\n this.updateNewActionState();\n }\n this.expressionEditorCanShowBuilder = !!this.editableItem;\n });\n this.itemsSurvey.onGetMatrixRowActions.add((sender, options) => {\n updateMatrixLogicExpandAction(<QuestionMatrixDynamicModel>options.question, options.actions, options.row);\n updateMatrixLogicRemoveAction(<QuestionMatrixDynamicModel>options.question, options.actions, options.row);\n });\n this.updateItemsSurveyData();\n this.onReadOnlyChanged();\n }\n @property({\n onSet: (value, target: SurveyLogicUI) => {\n target.updateItemsSurveyData();\n }\n }) questionFilter: string;\n @property({\n onSet: (value, target: SurveyLogicUI) => {\n target.updateItemsSurveyData();\n }\n }) actionTypeFilter: string;\n public dispose(): void {\n super.dispose();\n for (let key in this.itemUIHash) {\n const itemUI = this.itemUIHash[key];\n itemUI.expressionEditor.dispose();\n itemUI.itemEditor.dispose();\n }\n this.itemUIHash = {};\n }\n public addNewUI() {\n if (this.items.length == 0 || !this.items[this.items.length - 1].isNew) {\n this.addNew();\n }\n this.matrixItems.visibleRows[this.matrixItems.visibleRows.length - 1].showDetailPanel();\n }\n public toggleExpressionEditorIsFastEntry() {\n this.expressionEditorIsFastEntry = !this.expressionEditorIsFastEntry;\n if (!!this.expressionEditor) {\n this.expressionEditor.setIsFastEntry(this.expressionEditorIsFastEntry);\n }\n }\n public updateEditableItemIsModifiedState(): void {\n if (!!this.editableItem) {\n this.editableItem.isModified = !!this.itemEditor && !!this.expressionEditor && (this.itemEditor.isModified || this.expressionEditor.isModified(this.editableItem.expression));\n }\n }\n public haveUnsavedRules(): boolean {\n this.updateEditableItemIsModifiedState();\n return this.visibleItems.some(item => item.isModified || item.isNew);\n }\n protected onPropertyValueChanged(name: string, oldValue: any, newValue: any) {\n super.onPropertyValueChanged(name, oldValue, newValue);\n if (name === \"items\") {\n this.updateItemsSurveyData();\n }\n }\n protected onReadOnlyChanged(): void {\n if (!this.itemsSurvey) return;\n this.itemsSurvey.mode = this.readOnly ? \"display\" : \"edit\";\n Object.keys(this.itemUIHash || {}).forEach(id => {\n this.updateEditModeLogicItem(this.itemUIHash[id]);\n });\n }\n public get expressionEditor(): ConditionEditor {\n return this.expressionEditorValue;\n }\n public get itemEditor(): LogicItemEditor {\n return this.itemEditorValue;\n }\n public getExpressionEditor(item: SurveyLogicItem): ConditionEditor {\n return this.getLogicItemUI(item).expressionEditor;\n }\n public getLogicItemEditor(item: SurveyLogicItem): LogicItemEditor {\n return this.getLogicItemUI(item).itemEditor;\n }\n private updateEditModeLogicItem(item: ILogicItemUI) {\n if (!item) return;\n\n item.expressionEditor.editSurvey.mode = this.readOnly ? \"display\" : \"edit\";\n item.itemEditor.editSurvey.mode = this.readOnly ? \"display\" : \"edit\";\n }\n private getLogicItemUI(item: SurveyLogicItem): ILogicItemUI {\n let res: ILogicItemUI = this.itemUIHash[item.id];\n if (!res) {\n const context = <Question>item.getContext();\n res = { expressionEditor: this.createExpressionPropertyEditor(), itemEditor: new LogicItemEditor(item, this.options) };\n this.updateEditModeLogicItem(res);\n res.expressionEditor.context = context;\n res.itemEditor.context = context;\n res.expressionEditor.text = item.expression;\n res.expressionEditor.onContextChanged = (context: Question): void => {\n res.itemEditor.context = context;\n };\n this.itemUIHash[item.id] = res;\n }\n return res;\n }\n public get expressionSurvey(): SurveyModel {\n return this.expressionEditor.editSurvey;\n }\n public get itemEditorSurvey(): SurveyModel {\n return this.itemEditor.editSurvey;\n }\n public get itemsSurvey(): SurveyModel {\n return this.itemsSurveyValue;\n }\n public get hasItems(): boolean {\n return this.items.length > 0;\n }\n get matrixItems(): QuestionMatrixDynamicModel {\n return this.itemsSurvey.getQuestionByName(\"items\") as QuestionMatrixDynamicModel;\n }\n protected onStartEditing() {\n super.onStartEditing();\n this.expressionEditorValue = this.getExpressionEditor(this.editableItem);\n this.itemEditorValue = this.getLogicItemEditor(this.editableItem);\n this.expressionEditorIsFastEntry = false;\n this.expressionEditor.setIsFastEntry(this.expressionEditorIsFastEntry);\n this.expressionEditorCanShowBuilder = ConditionEditor.canBuildExpression(this.expressionEditor.text);\n }\n protected onEndEditing() {\n this.updateEditableItemIsModifiedState();\n super.onEndEditing();\n this.expressionEditorValue = null;\n this.itemEditorValue = null;\n }\n protected onEditableItemApply() {\n this.expressionEditor.apply();\n this.itemEditor.apply();\n this.editableItem.apply(this.expressionEditor.text);\n if (this.editableItem.actions.length != this.itemEditor.panels.length) {\n this.itemEditor.setEditableItem(this.editableItem);\n }\n this.itemEditor.resetModified();\n this.editableItem.isNew = false;\n if (!this.editableItem.isSuitable(this.questionFilter, this.actionTypeFilter)) {\n this.questionFilter = \"\";\n this.actionTypeFilter = \"\";\n } else {\n this.updateItemsSurveyData();\n }\n }\n protected hasErrorInUI(): boolean {\n const creator = (<any>this.survey).creator;\n if (this.expressionEditor.hasErrorInUI()) {\n this.errorText = this.expressionEditor.errorText;\n return true;\n }\n if (this.itemEditor.hasErrors()) {\n this.errorText = getLogicString(\"actionInvalid\");\n !!creator &&\n creator.notify(this.errorText, \"error\");\n return true;\n }\n return false;\n }\n protected getExpressionText(): string {\n return this.expressionEditor.text;\n }\n protected getEditingActions(): Array<SurveyLogicAction> {\n return this.itemEditor.getEditingActions();\n }\n\n protected getLogicItemSurveyJSON(): any {\n const creator = (<any>this.survey).creator;\n const json = (creator && creator.useTableViewInLogicTab) ? this.getTwoColumnsLayout() : this.getOneColumnLayout();\n setSurveyJSONForPropertyGrid(json);\n return json;\n }\n private getTwoColumnsLayout() {\n return {\n elements: [\n {\n type: \"matrixdynamic\",\n name: \"items\",\n titleLocation: \"hidden\",\n detailPanelMode: \"underRowSingle\",\n allowAddRows: false,\n allowAdaptiveActions: false,\n rowCount: 0,\n columns: [\n {\n cellType: \"linkvalue\",\n name: \"conditions\",\n title: this.getLocString(\"ed.lg.conditions\")\n },\n {\n cellType: \"linkvalue\",\n name: \"actions\",\n title: this.getLocString(\"ed.lg.actions\")\n }\n ]\n }\n ]\n };\n }\n private getOneColumnLayout() {\n return {\n elements: [\n {\n type: \"matrixdynamic\",\n name: \"items\",\n titleLocation: \"hidden\",\n showColumnHeader: false,\n detailPanelMode: \"underRowSingle\",\n allowAddRows: false,\n allowAdaptiveActions: false,\n rowCount: 0,\n showHeader: false,\n columns: [\n {\n cellType: \"linkvalue\",\n name: \"rules\",\n showTooltip: true,\n width: \"100%\"\n }\n ]\n }\n ]\n };\n }\n private createExpressionPropertyEditor(): ConditionEditor {\n const res = new ConditionEditor(\n this.survey,\n null,\n this.options\n );\n res.isModal = false;\n res.editSurvey.onValueChanged.add((sender, options) => {\n if (options.name === \"textEditor\") {\n this.expressionEditorCanShowBuilder = ConditionEditor.canBuildExpression(options.value);\n }\n });\n return res;\n }\n private getVisibleItems(): SurveyLogicItem[] {\n return this.items.filter(item => item.isNew || item.isSuitable(this.questionFilter, this.actionTypeFilter));\n }\n private getDataFromItem(item: SurveyLogicItem) {\n const creator = (<any>this.survey).creator;\n if (creator && creator.useTableViewInLogicTab) {\n return {\n conditions: item.expressionText,\n actions: item.actionsText\n };\n } else {\n return { rules: this.getLogicItemDisplayText(item) };\n }\n }\n private getLogicItemDisplayText(item: SurveyLogicItem): string {\n const text = item.getDisplayText();\n if (!this.options) return text;\n return this.options.onLogicGetTitleCallback(item.expression, item.expressionText, text, item);\n }\n private updateItemsSurveyData() {\n if (!this.itemsSurvey) return;\n var data = [];\n this.visibleItems = this.getVisibleItems();\n this.visibleItems.forEach(item => {\n data.push(this.getDataFromItem(item));\n });\n\n this.matrixItems.onHasDetailPanelCallback = (row) => { return true; };\n this.matrixItems.onCreateDetailPanelCallback = (\n row: MatrixDropdownRowModelBase,\n panel: PanelModel\n ) => {\n row.onDetailPanelShowingChanged = () => {\n this.expressionEditorCanShowBuilder = row.isDetailPanelShowing;\n if (row.isDetailPanelShowing) {\n if (this.mode === \"view\") {\n const logicItem = this.visibleItems[row.rowIndex - 1];\n this.editItem(logicItem);\n }\n const condQuestion = <QuestionEmbeddedSurveyModel>panel.getQuestionByName(\"conditions\");\n const actionsQuestion = <QuestionEmbeddedSurveyModel>panel.getQuestionByName(\"actions\");\n condQuestion.embeddedSurvey = this.expressionEditor.editSurvey;\n actionsQuestion.embeddedSurvey = this.itemEditorValue.editSurvey;\n this.updateRowIsAdditionalClasses(row.rowIndex - 1, false);\n } else {\n this.mode = \"view\";\n this.updateRenderedRows();\n }\n this.updateNewActionState();\n };\n panel.addNewQuestion(\"embeddedsurvey\", \"conditions\");\n panel.addNewQuestion(\"embeddedsurvey\", \"actions\");\n\n panel.footerActions.push({\n id: \"saveDetailPanel\",\n innerCss: \"sl-panel__done-button\",\n title: this.getLocString(\"pe.doneEditing\"),\n action: () => {\n if (this.saveEditableItem()) {\n row.hideDetailPanel(true);\n }\n }\n });\n };\n this.matrixItems.onCellCreatedCallback = (options: any) => {\n options.cell.question.linkClickCallback = () => {\n if (options.row.isDetailPanelShowing) {\n options.row.hideDetailPanel();\n } else {\n options.row.showDetailPanel();\n }\n };\n options.cell.question.showClear = false;\n options.cell.question.allowClear = false;\n };\n this.matrixItems.value = data;\n this.updateRenderedRows();\n }\n private updateRenderedRows() {\n this.visibleItems.forEach((_, index) => {\n this.updateRowIsAdditionalClasses(index, this.visibleItems[index].isModified || this.visibleItems[index].isNew);\n });\n }\n private updateRowIsAdditionalClasses(index: number, isAdditionalClasses: boolean) {\n if (!!this.matrixItems.renderedTable) {\n this.matrixItems.renderedTable.rows[index].isAdditionalClasses = isAdditionalClasses;\n }\n }\n private updateNewActionState(): void {\n this.addNewButton.enabled = this.mode !== \"new\";\n }\n private setupToolbarItems() {\n this.addNewButton = new Action({\n id: \"svd-logic-addNew\",\n title: this.addNewText,\n tooltip: this.addNewText,\n component: \"sv-action-bar-item\",\n enabled: true,\n action: () => {\n this.addNewUI();\n }\n });\n }\n public get addNewText(): string {\n return getLogicString(\"addNewItem\");\n }\n\n public get emptyTabPlaceholder(): string {\n return getLogicString(\"empty_tab\");\n }\n}","// extracted by mini-css-extract-plugin","import { SurveyModel, Base, Serializer, Event, ExpressionRunner, Question, HashTable, Helpers, property, propertyArray, ItemValue, MatrixDropdownColumn, QuestionDropdownModel, EventBase } from \"survey-core\";\nimport { editorLocalization } from \"../../editorLocalization\";\nimport { ISurveyCreatorOptions, EmptySurveyCreatorOptions, settings } from \"../../creator-settings\";\nimport { ISurveyLogicItemOwner, SurveyLogicItem, SurveyLogicAction } from \"./logic-items\";\nimport { SurveyLogicTypes, SurveyLogicType } from \"./logic-types\";\nrequire(\"./logic.scss\");\n\nexport function initLogicOperator(question: QuestionDropdownModel) {\n question.popupModel.isFocusedContent = true;\n question.popupModel.setWidthByTarget = false;\n question.dropdownListModel[\"listModel\"].searchEnabled = question.searchEnabled;\n}\n\nexport class LogicEvent extends EventBase<SurveyLogic, any> { }\n\nexport class SurveyLogic extends Base implements ISurveyLogicItemOwner {\n private editableItemValue: SurveyLogicItem;\n public static get visibleActions(): Array<string> {\n return settings.logic.visibleActions;\n }\n public static set visibleActions(val: Array<string>) {\n settings.logic.visibleActions = val;\n }\n public static get types() {\n return SurveyLogicTypes.types;\n }\n public invisibleItems: Array<SurveyLogicItem> = [];\n public onChangedCallback: (item: SurveyLogicItem, changeType: string) => void;\n\n /**\n * The event is called when logic item is saved.\n * options.item is the saved logic item.\n */\n public onLogicItemSaved: LogicEvent = new LogicEvent();\n /**\n * The event is called before logic item is saved. You can set options.error to non empty string to show error instead of saving the item.\n * You can use options.item.actions to access actions and optionally set errorText to a particular action.\n * options.item is the editing logic item. options.item.actions contains the old actions.\n * options.actions is the array of logic actions that user edit and create.\n * usedNamesInExpression - the string list of all variables (questions, calculatedValues, and so on) that are used in expression\n * error - the error string. It is empty by default. You have to set it to non-empty string to show the error on saving.\n */\n public onLogicItemValidation: LogicEvent = new LogicEvent();\n /**\n * The event is called before logic item is being removed.\n * options.allowRemove is the option you can set to false and prevent removing.\n * options.item is the logic item to remove.\n */\n public onLogicItemRemoving: LogicEvent = new LogicEvent();\n /**\n * The event is called when logic item is removed.\n * options.item is the removed logic item.\n */\n public onLogicItemRemoved: LogicEvent = new LogicEvent();\n\n constructor(\n public survey: SurveyModel,\n public options: ISurveyCreatorOptions = null\n ) {\n super();\n if (!this.options) this.options = new EmptySurveyCreatorOptions();\n this.readOnly = this.optionsReadOnly;\n this.update();\n }\n dispose() {\n super.dispose();\n this.onEndEditing();\n this.survey = undefined;\n }\n @propertyArray() items: Array<SurveyLogicItem>;\n @propertyArray() logicTypes: Array<SurveyLogicType>;\n @property() errorText: string;\n @property({\n onSet: (value, target: SurveyLogic) => {\n target.onReadOnlyChanged();\n }\n }) readOnly: boolean;\n @property() placeholderHtml: string;\n\n public get editableItem(): SurveyLogicItem {\n return this.editableItemValue;\n }\n private modeValue: string;\n /**\n * There are 3 modes: view, new, edit\n */\n public get mode(): string { return this.modeValue; }\n public set mode(val: string) {\n if (this.modeValue === val) return;\n const oldValue = this.mode;\n this.modeValue = val;\n this.errorText = \"\";\n if (val == \"view\" && (oldValue == \"edit\" || oldValue == \"new\")) {\n this.onEndEditing();\n }\n }\n public getLocString(name: string) {\n return editorLocalization.getString(name);\n }\n public getTypeByName(name: string): SurveyLogicType {\n for (var i = 0; i < this.logicTypes.length; i++) {\n if (this.logicTypes[i].name == name) return this.logicTypes[i];\n }\n return null;\n }\n public update(\n survey: SurveyModel = null,\n options: ISurveyCreatorOptions = null\n ) {\n if (!!survey) {\n this.survey = survey;\n }\n if (!!options) {\n this.options = options;\n }\n this.logicTypes = this.createLogicTypes();\n this.updateVisibleItems();\n this.invisibleItems = this.buildItems(false);\n this.readOnly = this.optionsReadOnly;\n this.mode = \"view\";\n }\n private updateVisibleItems() {\n this.items = this.buildItems(true);\n this.editableItemValue = null;\n }\n public get optionsReadOnly() {\n return !!this.options && this.options.readOnly;\n }\n public saveEditableItem(): boolean {\n if (!this.editableItem || this.hasError()) return false;\n !!this.options && this.options.startUndoRedoTransaction();\n this.onEditableItemApply();\n const hasInList = this.items.indexOf(this.editableItem) < 0;\n if (hasInList) {\n this.items.push(this.editableItem);\n }\n const isNew = !hasInList || this.editableItem.isNew;\n this.editableItem.isNew = false;\n this.onItemChanged(this.editableItem, isNew ? \"new\" : \"modify\");\n !!this.options && this.options.stopUndoRedoTransaction();\n this.onLogicItemSaved.fire(this, { item: this.editableItem });\n return true;\n }\n public saveEditableItemAndBack(): boolean {\n var res = this.saveEditableItem();\n if (res) {\n this.mode = \"view\";\n }\n return res;\n }\n protected onEditableItemApply() { }\n protected onItemChanged(item: SurveyLogicItem, changeType: string) {\n if (!!this.onChangedCallback) {\n this.onChangedCallback(item, changeType);\n }\n }\n public renameQuestion(oldName: string, newName: string): void {\n this.items.forEach(item => item.renameQuestion(oldName, newName));\n this.invisibleItems.forEach(item => item.renameQuestion(oldName, newName));\n }\n public renameItemValue(item: ItemValue, oldValue: any): void {\n const question = this.getItemValueQuestion(item, oldValue);\n if (!question) return;\n this.items.forEach(lItem => lItem.renameItemValue(question, item, oldValue));\n this.invisibleItems.forEach(lItem => lItem.renameItemValue(question, item, oldValue));\n }\n public renameRowValue(item: ItemValue, oldValue: any): void {\n const question = this.getItemValueQuestion(item, oldValue);\n if (!question) return;\n this.items.forEach(lItem => lItem.renameRowValue(question, item, oldValue));\n this.invisibleItems.forEach(lItem => lItem.renameRowValue(question, item, oldValue));\n }\n public renameColumn(column: MatrixDropdownColumn, oldName: string): void {\n const question: any = column.colOwner;\n if (!question || !question.isQuestion) return;\n this.items.forEach(lItem => lItem.renameColumn(question, column, oldName));\n this.invisibleItems.forEach(lItem => lItem.renameColumn(question, column, oldName));\n }\n private getItemValueQuestion(item: ItemValue, oldValue: any): Question {\n if (!item.locOwner || Helpers.isValueEmpty(oldValue) || Helpers.isValueEmpty(item.value)) return null;\n const owner: any = item.locOwner;\n return owner.isQuestion ? owner : null;\n }\n public removeQuestion(name: string) {\n this.removeQuestionCore(name, this.items);\n this.removeQuestionCore(name, this.invisibleItems);\n }\n public hasError(): boolean {\n if (!this.editableItem) return true;\n if (this.hasErrorInUI()) return true;\n var exp = new ExpressionRunner(this.getExpressionText());\n var options = {\n item: this.editableItem,\n error: \"\",\n usedNamesInExpression: exp.getVariables(),\n actions: this.getEditingActions(),\n };\n this.onLogicItemValidation.fire(this, options);\n this.errorText = options.error;\n const creator = (<any>this.survey).creator;\n if (!!this.errorText && !!creator)\n creator.notify(this.errorText, \"error\");\n return !!this.errorText;\n }\n public getUsedQuestions(): Question[] {\n const names: { [key: string]: Question } = {};\n this.items.forEach(item => {\n item.getQuestionNames().forEach(name => {\n const question = this.survey.getQuestionByName(name);\n if (!!question && !names[name]) {\n names[name] = question;\n }\n });\n });\n let res: Question[] = [];\n Object.keys(names).forEach(item => {\n if (!!names[item]) {\n res.push(names[item]);\n }\n });\n return res;\n }\n public getUsedActionTypes(): SurveyLogicType[] {\n const types: { [key: string]: SurveyLogicType } = {};\n this.items.forEach(item => {\n item.getActionTypes().forEach(name => {\n if (!types[name]) {\n types[name] = this.logicTypes.filter(logicType => logicType.name == name)[0];\n }\n });\n });\n\n let res: SurveyLogicType[] = [];\n Object.keys(types).forEach(item => {\n if (!!types[item]) {\n res.push(types[item]);\n }\n });\n return res;\n }\n protected hasErrorInUI(): boolean {\n return false;\n }\n protected getExpressionText(): string {\n return \"\";\n }\n protected getEditingActions(): Array<SurveyLogicAction> {\n return [];\n }\n protected onReadOnlyChanged(): void { }\n private removeQuestionCore(name: string, items: Array<SurveyLogicItem>) {\n for (var i = 0; i < items.length; i++) {\n items[i].removeQuestion(name);\n }\n }\n public addNew() {\n !!this.options && this.options.startUndoRedoTransaction();\n var logicItem = new SurveyLogicItem(this);\n logicItem.isNew = true;\n this.items.push(logicItem);\n this.editItemCore(logicItem);\n !!this.options && this.options.stopUndoRedoTransaction();\n }\n public editItem(item: SurveyLogicItem) {\n !!this.options && this.options.startUndoRedoTransaction();\n this.editItemCore(item);\n !!this.options && this.options.stopUndoRedoTransaction();\n }\n private editItemCore(item: SurveyLogicItem) {\n this.editableItemValue = item;\n this.onStartEditing();\n this.mode = item.isNew ? \"new\" : \"edit\";\n }\n protected onStartEditing() { }\n protected onEndEditing() {\n this.editableItemValue = null;\n }\n protected canRemoveItem(item: SurveyLogicItem): boolean {\n const eventOptions = { item: item, allowRemove: true };\n this.onLogicItemRemoving.fire(this, eventOptions);\n return eventOptions.allowRemove;\n }\n public removeItem(item: SurveyLogicItem, checkCanRemove: boolean = true): void {\n if (checkCanRemove && !this.canRemoveItem(item)) return;\n !!this.options && this.options.startUndoRedoTransaction();\n item.apply(\"\");\n var index = this.items.indexOf(item);\n if (index > -1) {\n this.items.splice(index, 1);\n }\n this.onItemChanged(item, \"delete\");\n !!this.options && this.options.stopUndoRedoTransaction();\n this.onLogicItemRemoved.fire(this, { item: item });\n }\n public addAction(\n lt: SurveyLogicType,\n element: Base = null\n ): SurveyLogicAction {\n var action = this.createNewAction(lt, element);\n this.editableItem.addNewAction(action);\n return action;\n }\n public addNewAction(): SurveyLogicAction {\n return this.addAction(null, null);\n }\n private createNewAction(\n lt: SurveyLogicType,\n element: Base\n ): SurveyLogicAction {\n var action = new SurveyLogicAction(lt, element, this.survey);\n return action;\n }\n public getVisibleLogicTypes(): Array<SurveyLogicType> {\n var res = [];\n var logicTypes = this.logicTypes;\n for (var i = 0; i < logicTypes.length; i++) {\n if (logicTypes[i].visible) {\n res.push(logicTypes[i]);\n }\n }\n return res;\n }\n public removeAction(action: SurveyLogicAction) {\n if (!this.editableItem) return;\n this.editableItem.removeAction(action);\n if (this.editableItem.actions.length == 0) {\n this.addNewAction();\n }\n }\n public getExpressionAsDisplayText(expression: string): string {\n return SurveyLogicType.expressionToDisplayText(\n this.survey,\n this.options,\n expression\n );\n }\n protected buildItems(showInUI: boolean): Array<SurveyLogicItem> {\n var res = [];\n var hash = {};\n var elements = this.getAllElements();\n for (var i = 0; i < elements.length; i++) {\n this.buildItemsByElement(elements[i], res, hash, showInUI);\n }\n return res;\n }\n protected getAllElements(): Array<Base> {\n var res = [];\n this.AddElements(this.survey.pages, res);\n this.AddElements(SurveyLogicTypes.baseTypes.question.getSelectorChoices(this.survey, null), res);\n this.AddElements(this.survey.getAllPanels(), res);\n this.AddElements(this.survey.triggers, res);\n this.AddElements(this.survey.completedHtmlOnCondition, res);\n this.AddElements(this.survey.calculatedValues, res);\n this.AddElements(SurveyLogicTypes.baseTypes.matrixdropdowncolumn.getSelectorChoices(this.survey, null), res);\n this.AddElements(this.getValidators(), res);\n this.AddElements(this.getItemValues(), res);\n return res;\n }\n private getValidators(): Array<Base> {\n var res = [];\n var questions = this.survey.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n this.AddElements((<Question>questions[i]).validators, res);\n }\n return res;\n }\n private getItemValues(): Array<Base> {\n var res = [];\n var questions = this.survey.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n var choices = q[\"choices\"];\n if (!choices) continue;\n var prop = Serializer.findProperty(q.getType(), \"choices\");\n if (!prop || prop.type !== \"itemvalue[]\") continue;\n this.AddElements(choices, res);\n }\n return res;\n }\n private AddElements(src: Array<any>, dest: Array<any>) {\n for (var i = 0; i < src.length; i++) {\n dest.push(src[i]);\n }\n }\n private buildItemsByElement(\n element: Base,\n dest: Array<SurveyLogicItem>,\n hash: HashTable<SurveyLogicItem>,\n showInUI: boolean\n ) {\n var types = this.getElementAllTypes(element);\n for (var i = 0; i < this.logicTypes.length; i++) {\n var lt = this.logicTypes[i];\n if (lt.showInUI !== showInUI) continue;\n var expression = element[lt.propertyName];\n if (\n types.indexOf(lt.baseClass) > -1 &&\n !Helpers.isValueEmpty(expression)\n ) {\n var key = this.getLogicItemHashKey(expression, element);\n var item = hash[key];\n if (!item) {\n item = new SurveyLogicItem(this, expression);\n hash[key] = item;\n dest.push(item);\n }\n var action = this.createNewAction(lt, element);\n item.addNewAction(action);\n }\n }\n }\n private getLogicItemHashKey(expression: string, element: Base): string {\n const parentQuestion = this.getParentQuestion(element);\n const parentName = !!parentQuestion ? \"@\" + parentQuestion.name : \"\";\n return parentName + expression.replace(\" \", \"\").toLowerCase();\n }\n private getParentQuestion(element: Base): Question {\n const parentQuestion = (<any>element).parentQuestion;\n if (!!parentQuestion) return parentQuestion;\n if (element.isDescendantOf(\"matrixdropdowncolumn\")) return (<any>element).colOwner;\n return null;\n }\n private getElementAllTypes(element: Base) {\n var types = [];\n var type = element.getType();\n types.push(type);\n while (!!type && type != \"base\") {\n var cl = Serializer.findClass(type);\n if (!cl) break;\n type = cl.parentName;\n if (!!type) {\n types.push(type);\n }\n }\n return types;\n }\n protected createLogicTypes(): Array<SurveyLogicType> {\n var res = [];\n var visActions = SurveyLogic.visibleActions;\n for (var i = 0; i < SurveyLogic.types.length; i++) {\n if (\n visActions.length > 0 &&\n visActions.indexOf(SurveyLogic.types[i].name) < 0\n )\n continue;\n res.push(\n new SurveyLogicType(SurveyLogic.types[i], this.survey, this.options)\n );\n }\n return res;\n }\n}\n","import { notShortCircuitAnd } from \"../../utils/utils\";\nimport { Action, ComputedUpdater, createDropdownActionModel, surveyCss, defaultV2ThemeName, IAction, ListModel, PopupModel, surveyLocalization, SurveyModel, StylesManager } from \"survey-core\";\nimport { CreatorBase, ICreatorPlugin } from \"../../creator-base\";\nimport { editorLocalization, getLocString } from \"../../editorLocalization\";\nimport { simulatorDevices } from \"../simulator\";\nimport { TestSurveyTabViewModel } from \"./test\";\n\nexport class TabTestPlugin implements ICreatorPlugin {\n private languageSelectorAction: Action;\n private changeThemePopupModel: PopupModel;\n private changeThemeModel: ListModel;\n protected changeThemeAction: Action;\n private deviceSelectorAction: Action;\n private orientationSelectorAction: Action;\n private invisibleToggleAction: Action;\n private testAgainAction: Action;\n private designerAction: Action;\n private prevPageAction: Action;\n private nextPageAction: Action;\n private simulatorTheme: any = surveyCss[defaultV2ThemeName];\n\n public model: TestSurveyTabViewModel;\n\n private getSimulatorDevicesTitle(): string {\n if (!this.model) return \"\";\n return simulatorDevices[this.model.simulator.device].title || getLocString(\"pe.simulator\");\n }\n private setDevice(newVal: string) {\n this.model.simulator.device = newVal;\n this.model.simulator.resetZoomParameters();\n let currentType = simulatorDevices[this.model.simulator.device].deviceType;\n this.orientationSelectorAction.enabled = currentType != \"desktop\";\n this.deviceSelectorAction.iconName = \"icon-device-\" + currentType;\n this.deviceSelectorAction.title = getLocString(\"pe.simulator\");\n }\n private setDefaultLanguageOption(opt: boolean | string) {\n const vis: boolean = opt === true || opt === \"all\" || (opt === \"auto\" && this.model.survey.getUsedLocales().length > 1);\n this.languageSelectorAction.visible = vis;\n let languages: Array<IAction> = [];\n if (vis) {\n languages = this.getLanguages(opt !== \"all\" ? this.model.survey.getUsedLocales() : null);\n }\n this.languageSelectorAction.popupModel.contentComponentData.model.setItems(languages);\n this.languageSelectorAction.data.selectedItem = languages.filter(lang => lang.id === this.model.activeLanguage)[0];\n }\n private getLanguages(usedLanguages: Array<string> = null): Array<IAction> {\n const res: Array<IAction> = [];\n const locales = !!usedLanguages && usedLanguages.length > 1 ? usedLanguages : surveyLocalization.getLocales();\n for (let i = 0; i < locales.length; i++) {\n const loc: string = locales[i];\n res.push({ id: loc, title: editorLocalization.getLocaleName(loc) });\n }\n return res;\n }\n private updateActions() {\n this.languageSelectorAction.title = editorLocalization.getLocaleName(this.model.activeLanguage);\n this.languageSelectorAction.visible = true;\n\n if (this.creator.showSimulatorInTestSurveyTab) {\n this.setDevice(this.model.simulator.device);\n this.deviceSelectorAction.data.selectedItem = { id: this.model.simulator.device };\n this.orientationSelectorAction.title = getLocString(\"pe.portraitOrientation\");\n }\n\n if (this.creator.showInvisibleElementsInTestSurveyTab) {\n this.invisibleToggleAction.css = this.model.showInvisibleElements ? \"sv-action-bar-item--active\" : \"\";\n this.invisibleToggleAction.visible = this.model.isRunning;\n }\n if (this.creator.showDefaultLanguageInTestSurveyTab != undefined) {\n this.setDefaultLanguageOption(this.creator.showDefaultLanguageInTestSurveyTab);\n }\n }\n private setPreviewTheme(themeName: string): void {\n this.simulatorTheme = surveyCss[themeName] || surveyCss[defaultV2ThemeName];\n }\n\n constructor(private creator: CreatorBase) {\n creator.addPluginTab(\"test\", this, \"ed.testSurvey\");\n this.setPreviewTheme(this.creator.themeForPreview);\n this.createActions().forEach(action => creator.toolbar.actions.push(action));\n }\n public activate(): void {\n this.model = new TestSurveyTabViewModel(this.creator, this.simulatorTheme);\n this.model.onSurveyCreatedCallback = (survey) => {\n this.creator[\"onTestSurveyCreated\"] && this.creator[\"onTestSurveyCreated\"].fire(this.creator, { survey: survey });\n };\n this.model.simulator.landscape = this.creator.previewOrientation != \"portrait\";\n this.update();\n }\n public update(): void {\n if (!this.model) return;\n const options = {\n showPagesInTestSurveyTab: this.creator.showPagesInTestSurveyTab,\n };\n this.model.testAgainAction = this.testAgainAction;\n this.model.prevPageAction = this.prevPageAction;\n this.model.nextPageAction = this.nextPageAction;\n this.model.initialize(this.creator.JSON, options);\n\n this.updateActions();\n\n this.model.show();\n this.model.onPropertyChanged.add((sender, options) => {\n if (options.name === \"isRunning\") {\n this.invisibleToggleAction && (this.invisibleToggleAction.visible = this.model.isRunning);\n this.testAgainAction.visible = !this.model.isRunning;\n }\n });\n }\n public deactivate(): boolean {\n if (this.model) {\n this.simulatorTheme = this.model.simulator.survey.css;\n this.model.onSurveyCreatedCallback = undefined;\n this.model = undefined;\n }\n this.languageSelectorAction.visible = false;\n this.testAgainAction.visible = false;\n this.invisibleToggleAction && (this.invisibleToggleAction.visible = false);\n return true;\n }\n private getAvailableThemes(themeMapper: Array<any>): Array<Action> {\n const availableThemesToItems = [];\n for (var i = 0; i < themeMapper.length; i++) {\n const item = themeMapper[i];\n const action = new Action({ id: item.name + \"_themeSwitcher\", locTitleName: this.getThemeLocName(item.name) });\n (<any>action).value = item.name;\n availableThemesToItems.push(action);\n }\n return availableThemesToItems;\n }\n private getThemeLocName(name: string): string {\n return \"ed.\" + name + \"Theme\";\n }\n public createActions(): Array<Action> {\n const items: Array<Action> = [];\n\n this.testAgainAction = new Action({\n id: \"testSurveyAgain\",\n visible: false,\n locTitleName: \"ed.testSurveyAgain\",\n action: () => {\n this.model.testAgain();\n }\n });\n\n if (this.creator.showSimulatorInTestSurveyTab) {\n const deviceSelectorItems = Object.keys(simulatorDevices)\n .filter((key) => !!simulatorDevices[key].title)\n .map((key) => ({ id: key, title: simulatorDevices[key].title }));\n this.deviceSelectorAction = createDropdownActionModel({\n id: \"deviceSelector\",\n iconName: \"icon-device-desktop\",\n mode: \"small\",\n visible: <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(this.creator.activeTab === \"test\", this.creator.showSimulatorInTestSurveyTab);\n }),\n }, {\n items: deviceSelectorItems,\n allowSelection: true,\n onSelectionChanged: (item: any) => { this.setDevice(item.id); },\n horizontalPosition: \"center\",\n onHide: () => { this.deviceSelectorAction.enabled = true; },\n onShow: () => { this.deviceSelectorAction.enabled = false; }\n });\n items.push(this.deviceSelectorAction);\n\n this.orientationSelectorAction = new Action({\n id: \"orientationSelector\",\n iconName: \"icon-device-rotate\",\n mode: \"small\",\n visible: <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(this.creator.activeTab === \"test\", this.creator.showSimulatorInTestSurveyTab);\n }),\n action: () => {\n this.model.simulator.landscape = !this.model.simulator.landscape;\n this.orientationSelectorAction.title = getLocString(!this.model.simulator.landscape ? \"pe.landscapeOrientation\" : \"pe.portraitOrientation\");\n }\n });\n items.push(this.orientationSelectorAction);\n }\n if (this.creator.showInvisibleElementsInTestSurveyTab) {\n this.invisibleToggleAction = new Action({\n id: \"showInvisible\",\n iconName: \"icon-invisible-items\",\n mode: \"small\",\n needSeparator: <any>new ComputedUpdater<boolean>(() => {\n return !this.creator.isMobileView;\n }),\n locTitleName: \"ts.showInvisibleElements\",\n visible: false,\n action: () => {\n this.model.showInvisibleElements = !this.model.showInvisibleElements;\n this.invisibleToggleAction.css = this.model.showInvisibleElements ? \"sv-action-bar-item--active\" : \"\";\n this.invisibleToggleAction.title = getLocString(!this.model.showInvisibleElements ? \"ts.showInvisibleElements\" : \"ts.hideInvisibleElements\");\n }\n });\n items.push(this.invisibleToggleAction);\n }\n\n let themeMapper = StylesManager.getIncludedThemeCss() as Array<any>;\n const sequence = [\"defaultV2\", \"modern\", \"default\"];\n themeMapper = themeMapper.sort((theme1, theme2) => {\n return sequence.indexOf(theme1.name) > sequence.indexOf(theme2.name) ? 1 : -1;\n });\n let availableThemesToItems = this.getAvailableThemes(themeMapper);\n\n if (this.creator.allowChangeThemeInPreview && availableThemesToItems.length > 1) {\n this.changeThemeModel = new ListModel(\n availableThemesToItems,\n (item: any) => {\n if (!!this.model) {\n this.model.setTheme(item.value, themeMapper);\n }\n this.changeThemeAction.locTitleName = this.getThemeLocName(item.value);\n this.changeThemeAction.locStrsChanged();\n this.changeThemePopupModel.toggleVisibility();\n },\n true\n );\n this.changeThemeModel.locOwner = this.creator;\n\n this.changeThemePopupModel = new PopupModel(\n \"sv-list\",\n { model: this.changeThemeModel },\n \"bottom\",\n \"center\"\n );\n const getStartThemeName = (): string => {\n const availableThemes = themeMapper.filter(item => item.theme.root === this.simulatorTheme.root);\n return availableThemes.length > 0 ? availableThemes[0].name : \"defaultV2\";\n };\n this.changeThemeAction = new Action({\n id: \"themeSwitcher\",\n iconName: \"icon-theme\",\n component: \"sv-action-bar-item-dropdown\",\n mode: \"large\",\n locTitleName: this.getThemeLocName(getStartThemeName()),\n needSeparator: true,\n visible: <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(this.creator.showSimulatorInTestSurveyTab, this.creator.activeTab === \"test\");\n }),\n action: () => {\n this.changeThemePopupModel.toggleVisibility();\n },\n popupModel: this.changeThemePopupModel\n });\n\n items.push(this.changeThemeAction);\n }\n\n this.languageSelectorAction = createDropdownActionModel({\n id: \"languageSelector\",\n iconName: \"icon-language\",\n visible: false,\n mode: <any>new ComputedUpdater<string>(() => {\n return this.creator.isMobileView ? \"small\" : \"large\";\n }),\n }, {\n items: [],\n allowSelection: true,\n onSelectionChanged: (item: any) => {\n this.model.activeLanguage = item.id;\n this.languageSelectorAction.title = editorLocalization.getLocaleName(item.id);\n },\n horizontalPosition: \"center\",\n onHide: () => { this.languageSelectorAction.enabled = true; },\n onShow: () => { this.languageSelectorAction.enabled = false; }\n });\n items.push(this.languageSelectorAction);\n\n this.designerAction = new Action({\n id: \"svd-designer\",\n iconName: \"icon-preview\",\n needSeparator: true,\n action: () => { this.creator.makeNewViewActive(\"designer\"); },\n active: <any>new ComputedUpdater<boolean>(() => this.creator.activeTab === \"test\"),\n visible: <any>new ComputedUpdater<boolean>(() => {\n return (this.creator.activeTab === \"test\");\n }),\n locTitleName: \"ed.designer\",\n showTitle: false\n });\n\n this.prevPageAction = new Action({\n id: \"prevPage\",\n iconName: \"icon-arrow-left_16x16\",\n visible: false\n });\n\n this.nextPageAction = new Action({\n id: \"nextPage\",\n iconName: \"icon-arrow-right_16x16\",\n visible: false\n });\n return items;\n }\n\n public addFooterActions() {\n this.creator.footerToolbar.actions.push(this.testAgainAction);\n this.invisibleToggleAction && (this.creator.footerToolbar.actions.push(this.invisibleToggleAction));\n this.languageSelectorAction && (this.creator.footerToolbar.actions.push(this.languageSelectorAction));\n this.creator.footerToolbar.actions.push(this.prevPageAction);\n this.creator.footerToolbar.actions.push(this.nextPageAction);\n this.creator.footerToolbar.actions.push(this.designerAction);\n }\n}\n","// extracted by mini-css-extract-plugin","import { SurveySimulatorModel } from \"../simulator\";\n\nrequire(\"./test.scss\");\nimport { surveyLocalization, Base, propertyArray, property, PageModel, SurveyModel, Action, IAction, ActionContainer, ComputedUpdater, defaultV2Css, createDropdownActionModel } from \"survey-core\";\nimport { CreatorBase } from \"../../creator-base\";\nimport { editorLocalization, getLocString } from \"../../editorLocalization\";\nimport { setSurveyJSONForPropertyGrid } from \"../../property-grid\";\nimport { propertyGridCss } from \"../../property-grid-theme/property-grid\";\nimport { notShortCircuitAnd } from \"../../utils/utils\";\n\n// import template from \"./test.html\";\n\n// export * from \"@survey/creator/components/toolbar\";\n// export * from \"@survey/creator/components/simulator\";\n// export * from \"@survey/creator/components/results\";\n// export * from \"@survey/creator/utils/dropdown\";\n// export * from \"@survey/creator/utils/boolean\";\n// export * from \"@survey/creator/utils/svg-icon\";\n// export * from \"@survey/creator/utils/survey-widget\";\n// export { SurveySimulatorModel as SurveySimulatorComponentV1 } from \"@survey/creator/components/simulator\";\n// export { SurveyResultsModel as SurveyResultsModelV1 } from \"@survey/creator/components/results\";\n\nexport class TestSurveyTabViewModel extends Base {\n private json: any;\n public pages: ActionContainer = new ActionContainer();\n public prevPageAction: Action;\n public testAgainAction: Action;\n public nextPageAction: Action;\n private selectPageAction: Action;\n onSurveyCreatedCallback: (survey: SurveyModel) => any;\n\n public simulator: SurveySimulatorModel;\n @property({\n defaultValue: false,\n onSet: (val: boolean, target: TestSurveyTabViewModel) => {\n target.simulator.survey.showInvisibleElements = val;\n }\n })\n showInvisibleElements;\n @property({ defaultValue: true }) showPagesInTestSurveyTab;\n @property({\n defaultValue: true, onSet: (value: boolean, target: TestSurveyTabViewModel) => {\n if (!!target.simulator) target.simulator.isRunning = value;\n }\n }) isRunning: boolean;\n @propertyArray() pageListItems: Array<IAction>;\n @property({\n onSet: (val: PageModel, target: TestSurveyTabViewModel) => {\n if (!!val) {\n const survey = target.simulator.survey;\n if (survey.firstPageIsStarted) {\n if (val === survey.pages[0]) {\n survey.clear(false, true);\n } else {\n if (survey.state == \"starting\") {\n survey.setPropertyValue(\"isStartedState\", false);\n }\n }\n }\n if (survey.state !== \"starting\") {\n survey.currentPage = val;\n }\n }\n target.updatePrevNextPageActionState();\n }\n })\n activePage: PageModel;\n public get activeLanguage(): string {\n return this.getPropertyValue(\"activeLanguage\", this.survey.locale || surveyLocalization.defaultLocale);\n }\n public set activeLanguage(val: string) {\n if (val === this.activeLanguage) return;\n this.setPropertyValue(\"activeLanguage\", val);\n this.survey.locale = val;\n }\n public get survey(): SurveyModel {\n return this.simulator.survey;\n }\n public get pageActions(): Array<Action> {\n return this.pages.actions;\n }\n public get isPageToolbarVisible(): boolean {\n return this.pages.visibleActions.length > 0 && !this.surveyProvider.isMobileView;\n }\n\n constructor(private surveyProvider: CreatorBase, private startTheme: any = defaultV2Css) {\n super();\n this.simulator = new SurveySimulatorModel();\n }\n\n public updateSimulatorSurvey(json: any, theme: any) {\n const newSurvey = this.surveyProvider.createSurvey(json || {}, \"test\");\n newSurvey.setCss(theme, false);\n this.simulator.survey = newSurvey;\n if (this.onSurveyCreatedCallback) this.onSurveyCreatedCallback(this.survey);\n const self: TestSurveyTabViewModel = this;\n this.survey.onComplete.add((sender: SurveyModel) => {\n self.isRunning = false;\n });\n\n if (!!this.survey[\"onNavigateToUrl\"]) {\n this.survey[\"onNavigateToUrl\"].add(function (sender, options) {\n const url: string = options.url;\n options.url = \"\";\n if (!!url) {\n const message: string = getLocString(\"ed.navigateToMsg\") + \" '\" + url + \"'.\";\n if (!!this.surveyProvider) {\n this.surveyProvider.notify(message);\n } else {\n alert(message);\n }\n }\n });\n }\n this.survey.onStarted.add((sender: SurveyModel) => {\n self.setActivePageItem(self.simulator.survey.activePage, true);\n });\n this.survey.onCurrentPageChanged.add((sender: SurveyModel, options) => {\n self.activePage = options.newCurrentPage;\n self.setActivePageItem(options.oldCurrentPage, false);\n self.setActivePageItem(options.newCurrentPage, true);\n });\n this.survey.onPageVisibleChanged.add((sender: SurveyModel, options) => {\n self.updatePageItem(options.page);\n });\n }\n\n public setJSON(json: any, currTheme: any) {\n this.json = json;\n if (json != null) {\n if (json.cookieName) {\n delete json.cookieName;\n }\n }\n this.updateSimulatorSurvey(json, currTheme);\n }\n\n public initialize(json: any, options: any) {\n this.setJSON(json, this.startTheme);\n this.updatePageList();\n\n if (options.showPagesInTestSurveyTab !== undefined) {\n this.showPagesInTestSurveyTab = options.showPagesInTestSurveyTab;\n }\n\n this.buildActions();\n }\n private updatePageItem(page: PageModel) {\n const item = this.getPageItemByPage(page);\n if (item) {\n item.enabled = page.isVisible;\n }\n }\n private getCurrentPageItem(): IAction {\n return this.pageListItems[this.survey.pages.indexOf(this.survey.activePage)];\n }\n private getSelectPageTitle(): string {\n return (this.activePage && this.getPageTitle(this.activePage, \"preview-tab:selected-page\", \"survey-tester-selected\")) || getLocString(\"ts.selectPage\");\n }\n private getPageTitle(page: PageModel, area = \"preview-tab:page-list\", reason = \"survey-tester\") {\n let title = this.surveyProvider.getObjectDisplayName(page, area, reason, page.title);\n if (title === page.name && title.indexOf(\"page\") === 0) {\n const index: number = this.survey.pages.indexOf(page);\n return editorLocalization.getString(\"ed.pageTypeName\") + \" \" + (index + 1);\n }\n return title;\n }\n private updatePageList() {\n const pages: Array<IAction> = [];\n for (let i: number = 0; i < this.survey.pages.length; i++) {\n const page: PageModel = this.survey.pages[i];\n pages.push({\n id: page.name,\n data: page,\n title: this.getPageTitle(page),\n enabled: page.isVisible,\n visible: true\n });\n }\n this.pageListItems = pages;\n }\n\n public show() {\n this.showInvisibleElements = false;\n this.activePage = this.survey.activePage;\n this.survey.locale = this.activeLanguage;\n this.isRunning = true;\n }\n\n public testAgain() {\n this.setJSON(this.json, this.simulator.survey.css);\n this.updatePageList();\n this.show();\n }\n\n public buildActions() {\n const pageActions: Array<Action> = [];\n const setNearPage: (isNext: boolean) => void = (isNext: boolean) => {\n const currentIndex: number = this.survey.currentPageNo;\n const shift: number = isNext ? 1 : -1;\n let newIndex = currentIndex + shift;\n if (this.survey.state === \"starting\" && isNext) {\n newIndex = 0;\n }\n let nearPage: PageModel = this.survey.visiblePages[newIndex];\n if (!isNext && currentIndex === 0 && this.survey.firstPageIsStarted\n && this.survey.pages.length > 0) {\n nearPage = this.survey.pages[0];\n }\n const pageIndex: number = this.survey.pages.indexOf(nearPage);\n this.activePage = this.survey.pages[pageIndex];\n this.selectPageAction.data.selectedItem = this.pageListItems[pageIndex];\n };\n\n if (this.prevPageAction) {\n this.prevPageAction.visible = <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(this.isRunning, this.surveyProvider.activeTab === \"test\", this.pageListItems.length > 1);\n });\n this.prevPageAction.iconName = <any>new ComputedUpdater<string>(() => {\n return this.surveyProvider.isMobileView ? \"icon-arrow-left\" : \"icon-arrow-left_16x16\";\n });\n this.prevPageAction.iconSize = <any>new ComputedUpdater<number>(() => {\n return this.surveyProvider.isMobileView ? 24 : 16;\n });\n this.prevPageAction.action = () => setNearPage(false);\n pageActions.push(this.prevPageAction);\n }\n\n this.selectPageAction = createDropdownActionModel({\n id: \"pageSelector\",\n css: \"svc-page-selector\",\n title: this.getSelectPageTitle(),\n visible: this.isRunning && this.pageListItems.length > 1 && this.showPagesInTestSurveyTab\n }, {\n items: this.pageListItems,\n allowSelection: true,\n selectedItem: this.getCurrentPageItem(),\n onSelectionChanged: (item: IAction) => {\n this.activePage = item.data;\n },\n verticalPosition: \"top\",\n horizontalPosition: \"center\"\n });\n pageActions.push(this.selectPageAction);\n\n if (this.nextPageAction) {\n this.nextPageAction.visible = <any>new ComputedUpdater<boolean>(() => {\n return notShortCircuitAnd(this.isRunning, this.surveyProvider.activeTab === \"test\", this.pageListItems.length > 1);\n });\n this.nextPageAction.iconName = <any>new ComputedUpdater<string>(() => {\n return this.surveyProvider.isMobileView ? \"icon-arrow-right\" : \"icon-arrow-right_16x16\";\n });\n this.nextPageAction.iconSize = <any>new ComputedUpdater<number>(() => {\n return this.surveyProvider.isMobileView ? 24 : 16;\n });\n this.nextPageAction.action = () => setNearPage(true);\n pageActions.push(this.nextPageAction);\n }\n this.pages.actions = pageActions;\n this.pages.containerCss = \"sv-action-bar--pages\";\n this.updatePrevNextPageActionState();\n }\n private setActivePageItem(page: PageModel, val: boolean) {\n const item: IAction = this.getPageItemByPage(page);\n if (item) {\n item.active = val;\n }\n }\n private getPageItemByPage(page: PageModel): IAction {\n const items: IAction[] = this.pageListItems;\n for (let i = 0; i < items.length; i++) {\n if (items[i].data === page) return items[i];\n }\n return null;\n }\n private updateResultsTemplate(theme: any) {\n this.simulator.survey.setCss(theme, false);\n this.simulator.survey.render();\n }\n public setTheme(themeName: string, themeMapper: any): void {\n const availableThemes = themeMapper.filter(item => item.name === themeName);\n let theme = <any>defaultV2Css;\n if (availableThemes.length > 0) {\n theme = availableThemes[0].theme;\n }\n this.isRunning ? this.updateSimulatorSurvey(this.json, theme) : this.updateResultsTemplate(theme);\n }\n protected onPropertyValueChanged(name: string, oldValue: any, newValue: any) {\n super.onPropertyValueChanged(name, oldValue, newValue);\n\n if (!this.pages.hasActions) return;\n\n if (name === \"activePage\") {\n this.updatePrevNextPageActionState();\n this.selectPageAction.title = this.getSelectPageTitle();\n }\n if (name === \"isRunning\" || name === \"pageListItems\" || name === \"showPagesInTestSurveyTab\") {\n this.selectPageAction.popupModel.contentComponentData.model.items = this.pageListItems;\n this.selectPageAction.popupModel.contentComponentData.model.selectedItem = this.getCurrentPageItem();\n this.selectPageAction.visible = this.isRunning && this.pageListItems.length > 1 && this.showPagesInTestSurveyTab;\n }\n }\n private updatePrevNextPageActionState() {\n if (!this.prevPageAction || !this.survey) return;\n const isPrevEnabled = this.survey.firstPageIsStarted && this.survey.state !== \"starting\"\n || (!this.survey.firstPageIsStarted && !this.survey.isFirstPage);\n this.prevPageAction.css = isPrevEnabled ? \"sv-action-bar-item--secondary\" : \"\";\n this.prevPageAction.enabled = isPrevEnabled;\n const isNextEnabled = this.survey && this.survey.visiblePages.indexOf(this.activePage) !== this.survey.visiblePages.length - 1;\n this.nextPageAction.css = isNextEnabled ? \"sv-action-bar-item--secondary\" : \"\";\n this.nextPageAction.enabled = isNextEnabled;\n }\n}","import { ListModel, Action, IAction, Base, createDropdownActionModel, PageModel, ComputedUpdater, surveyLocalization } from \"survey-core\";\nimport { CreatorBase, ICreatorPlugin } from \"../../creator-base\";\nimport { editorLocalization } from \"../../editorLocalization\";\nimport { SidebarTabModel } from \"../side-bar/side-bar-tab-model\";\nimport { Translation } from \"./translation\";\n\nexport class TabTranslationPlugin implements ICreatorPlugin {\n private filterStringsAction: Action;\n private filterPageAction: Action;\n private mergeLocaleWithDefaultAction: Action;\n private importCsvAction: Action;\n private exportCsvAction: Action;\n private inputFileElement: HTMLInputElement;\n private sidebarTab: SidebarTabModel;\n\n public model: Translation;\n\n constructor(private creator: CreatorBase) {\n creator.addPluginTab(\"translation\", this);\n this.sidebarTab = this.creator.sidebar.addTab(\"translation\");\n this.sidebarTab.caption = editorLocalization.getString(\"ed.translationPropertyGridTitle\");\n this.createActions().forEach(action => creator.toolbar.actions.push(action));\n }\n public activate(): void {\n this.model = new Translation(this.creator.survey, this.creator);\n this.model.readOnly = this.creator.readOnly;\n this.model.translationStringVisibilityCallback = (obj: Base, propertyName: string, visible: boolean) => {\n const options = { obj: obj, propertyName: propertyName, visible: visible };\n !this.creator.onTranslationStringVisibility.isEmpty && this.creator.onTranslationStringVisibility.fire(this.creator, options);\n return options.visible;\n };\n this.model.localeInitialVisibleCallback = (locale: string): boolean => {\n let options = { locale: locale, isSelected: true };\n this.creator.onTranslationLocaleInitiallySelected.fire(this.creator, options);\n return options.isSelected;\n };\n this.model.importItemCallback = (name: string, locale: string, text: string): string => {\n const options = { locale: locale, name: name, text: text };\n this.creator.onTranslationImportItem.fire(this.creator, options);\n return options.text;\n };\n this.model.importFinishedCallback = (): void => {\n this.creator.onTranslationImported.fire(this.creator, {});\n };\n this.sidebarTab.model = this.model.settingsSurvey;\n this.sidebarTab.componentName = \"survey-widget\";\n this.creator.sidebar.activeTab = this.sidebarTab.id;\n\n this.mergeLocaleWithDefaultAction.title = this.createMergeLocaleWithDefaultActionTitleUpdater();\n this.mergeLocaleWithDefaultAction.tooltip = this.createMergeLocaleWithDefaultActionTitleUpdater();\n this.mergeLocaleWithDefaultAction.visible = this.model.canMergeLocaleWithDefault;\n\n this.filterPageAction.visible = this.creator.survey.pageCount > 1;\n this.updateFilterPageAction(true);\n\n this.filterStringsAction.visible = true;\n this.updateFilterStrigsAction(true);\n\n this.importCsvAction.visible = true;\n this.exportCsvAction.visible = true;\n\n this.filterPageAction.data.setItems([{ id: null, title: this.showAllPagesText }].concat(\n this.creator.survey.pages.map((page) => ({\n id: page.name,\n title: this.getPageDisplayText(page)\n }))\n ), false);\n\n this.model.onPropertyChanged.add((sender, options) => {\n if (options.name === \"filteredPage\") {\n this.updateFilterPageAction();\n }\n if (options.name === \"showAllStrings\") {\n this.updateFilterStrigsAction();\n }\n if (options.name === \"canMergeLocaleWithDefault\") {\n this.mergeLocaleWithDefaultAction.visible = this.model.canMergeLocaleWithDefault;\n }\n if (options.name === \"mergeLocaleWithDefaultText\") {\n this.mergeLocaleWithDefaultAction.title = this.model.mergeLocaleWithDefaultText;\n this.mergeLocaleWithDefaultAction.tooltip = this.model.mergeLocaleWithDefaultText;\n }\n });\n\n this.model.reset();\n }\n public update(): void {\n if (!this.model) return;\n this.model.survey = this.creator.survey;\n this.model.filteredPage = null;\n this.updateFilterPageAction(true);\n }\n public deactivate(): boolean {\n if (!!this.model) {\n this.model.dispose();\n }\n this.model = undefined;\n this.sidebarTab.visible = false;\n this.filterStringsAction.visible = false;\n this.filterPageAction.visible = false;\n this.mergeLocaleWithDefaultAction.title = undefined;\n this.mergeLocaleWithDefaultAction.tooltip = undefined;\n this.mergeLocaleWithDefaultAction.visible = false;\n this.importCsvAction.visible = false;\n this.exportCsvAction.visible = false;\n\n return true;\n }\n private createMergeLocaleWithDefaultActionTitleUpdater(): any {\n return <any>new ComputedUpdater<string>(() => {\n let loc = this.creator.locale;\n if (!loc) loc = \"en\";\n return editorLocalization.getString(\"ed.translationMergeLocaleWithDefault\")[\"format\"](surveyLocalization.defaultLocale);\n });\n }\n public get selectLanguageOptionsCaption() {\n return editorLocalization.getString(\"ed.translationAddLanguage\");\n }\n public get showAllStringsText(): string {\n return editorLocalization.getString(\"ed.translationShowAllStrings\");\n }\n public get showUsedStringsOnlyText(): string {\n return editorLocalization.getString(\"ed.translationShowUsedStringsOnly\");\n }\n public get showAllPagesText(): string {\n return editorLocalization.getString(\"ed.translationShowAllPages\");\n }\n public get exportToCSVText(): string {\n return editorLocalization.getString(\"ed.translationExportToSCVButton\");\n }\n public get importFromCSVText(): string {\n return editorLocalization.getString(\"ed.translationImportFromSCVButton\");\n }\n public createActions(): Array<Action> {\n const items: Array<Action> = [];\n this.createFilterPageAction();\n items.push(this.filterPageAction);\n this.createFilterStringsAction();\n items.push(this.filterStringsAction);\n\n this.mergeLocaleWithDefaultAction = new Action({\n id: \"svd-translation-merge_locale_withdefault\",\n visible: false,\n component: \"sv-action-bar-item\",\n mode: \"small\",\n needSeparator: true,\n action: () => {\n this.model.mergeLocaleWithDefault();\n }\n });\n items.push(this.mergeLocaleWithDefaultAction);\n\n this.importCsvAction = new Action({\n id: \"svc-translation-import\",\n iconName: \"icon-load\",\n locTitleName: \"ed.translationImportFromSCVButton\",\n locTooltipName: \"ed.translationImportFromSCVButton\",\n visible: false,\n mode: \"small\",\n component: \"sv-action-bar-item\",\n needSeparator: true,\n action: () => {\n if (!document) return;\n if (!this.inputFileElement) {\n this.inputFileElement = document.createElement(\"input\");\n this.inputFileElement.type = \"file\";\n this.inputFileElement.style.display = \"none\";\n this.inputFileElement.onchange = () => {\n this.model.importFromCSVFileUI(this.inputFileElement);\n };\n }\n this.inputFileElement.click();\n }\n });\n items.push(this.importCsvAction);\n\n this.exportCsvAction = new Action({\n id: \"svc-translation-export\",\n iconName: \"icon-download\",\n locTitleName: \"ed.translationExportToSCVButton\",\n locTooltipName: \"ed.translationExportToSCVButton\",\n visible: false,\n mode: \"small\",\n component: \"sv-action-bar-item\",\n action: () => {\n this.model.exportToCSVFileUI();\n }\n });\n items.push(this.exportCsvAction);\n\n return items;\n }\n\n private createFilterPageAction() {\n this.filterPageAction = createDropdownActionModel({\n id: \"svc-translation-filter-page\",\n title: this.getFilterPageActionTitle(),\n visible: false,\n mode: \"small\",\n }, {\n items: [{ id: null, title: this.showAllPagesText }],\n allowSelection: true,\n onSelectionChanged: (item: IAction) => {\n this.model.filteredPage = !!item.id ? this.creator.survey.getPageByName(item.id) : null;\n },\n horizontalPosition: \"center\"\n });\n }\n private createFilterStringsAction() {\n this.filterStringsAction = createDropdownActionModel({\n id: \"svc-translation-show-all-strings\",\n title: this.getFilterStringsActionTitle(),\n visible: false,\n mode: \"small\",\n }, {\n items: [{ id: \"show-all-strings\", title: this.showAllStringsText }, { id: \"show-used-strings-only\", title: this.showUsedStringsOnlyText }],\n allowSelection: true,\n onSelectionChanged: (item: IAction) => {\n this.model.showAllStrings = item.id === \"show-all-strings\";\n },\n horizontalPosition: \"center\"\n });\n }\n private updateFilterStrigsAction(updateSelectedItem: boolean = false) {\n const title = this.getFilterStringsActionTitle();\n this.filterStringsAction.title = title;\n if (updateSelectedItem) {\n this.filterStringsAction.needSeparator = this.filterPageAction.visible;\n const list = <ListModel>this.filterStringsAction.data;\n list.selectedItem = list.actions.filter((el: IAction) => el.title === title)[0];\n }\n }\n private updateFilterPageAction(updateSelectedItem: boolean = false) {\n this.filterPageAction.title = this.getFilterPageActionTitle();\n if (updateSelectedItem) {\n const list = <ListModel>this.filterPageAction.data;\n const id = this.model.filteredPage ? this.model.filteredPage.name : null;\n list.selectedItem = list.actions.filter((el: IAction) => el.id === id)[0];\n }\n }\n private getFilterPageActionTitle(): string {\n const pageDisplayName = this.model && this.model.filteredPage && this.getPageDisplayText(this.model.filteredPage);\n return pageDisplayName || this.showAllPagesText;\n }\n private getFilterStringsActionTitle(): string {\n return (this.model && !this.model.showAllStrings) ? this.showUsedStringsOnlyText : this.showAllStringsText;\n }\n private getPageDisplayText(page: PageModel): string {\n return this.creator.getObjectDisplayName(page, \"translation-tab\", \"survey-translation\", page.title);\n }\n}\n","export var translationCss = {\n root: \"st-root-modern\",\n container: \"st-container-modern\",\n header: \"st-title st-container-modern__title\",\n body: \"st-body\",\n bodyEmpty: \"st-body st-body--empty\",\n footer: \"st-footer st-body__footer st-clearfix\",\n title: \"\",\n description: \"\",\n logo: \"st-logo\",\n logoImage: \"st-logo__image\",\n headerText: \"st-header__text\",\n navigationButton: \"\",\n completedPage: \"st-completedpage\",\n navigation: {\n complete: \"st-btn st-footer__complete-btn\",\n prev: \"st-btn st-footer__prev-btn\",\n next: \"st-btn st-footer__next-btn\",\n start: \"st-btn st-footer__start-btn\",\n preview: \"st-btn st-footer__preview-btn\",\n edit: \"st-btn st-footer__edit-btn\"\n },\n panel: {\n title: \"st-title st-panel__title\",\n titleExpandable: \"st-panel__title--expandable\",\n titleOnExpand: \"st-panel__title--expanded\",\n titleOnError: \"st-panel__title--error\",\n description: \"st-description st-panel__description\",\n container: \"st-element st-panel st-row__panel\",\n content: \"st-panel__content\",\n icon: \"st-panel__icon\",\n iconExpanded: \"st-panel__icon--expanded\",\n footer: \"st-panel__footer\",\n requiredText: \"st-panel__required-text\"\n },\n paneldynamic: {\n root: \"st-paneldynamic\",\n navigation: \"st-paneldynamic__navigation\",\n title: \"st-title st-question__title\",\n button: \"st-btn\",\n buttonRemove: \"st-paneldynamic__remove-btn\",\n buttonAdd: \"st-paneldynamic__add-btn\",\n progressTop: \"st-paneldynamic__progress st-paneldynamic__progress--top\",\n progressBottom:\n \"st-paneldynamic__progress st-paneldynamic__progress--bottom\",\n buttonPrev: \"st-paneldynamic__prev-btn\",\n buttonNext: \"st-paneldynamic__next-btn\",\n progressContainer: \"st-paneldynamic__progress-container\",\n progress: \"st-progress\",\n progressBar: \"st-progress__bar\",\n progressText: \"st-paneldynamic__progress-text\",\n separator: \"st-paneldynamic__separator\",\n panelWrapper: \"st-paneldynamic__panel-wrapper\",\n panelWrapperInRow: \"st-paneldynamic__panel-wrapper--in-row\"\n },\n progress: \"st-progress st-body__progress\",\n progressBar: \"st-progress__bar\",\n progressText: \"st-progress__text\",\n progressTextInBar: \"st-hidden\",\n page: {\n root: \"st-page st-body__page\",\n title: \"st-title st-page__title\",\n description: \"st-description st-page__description\"\n },\n pageTitle: \"st-title st-page__title\",\n pageDescription: \"st-description st-page__description\",\n row: \"st-row st-clearfix\",\n question: {\n mainRoot: \"st-element st-question st-row__question\",\n flowRoot: \"st-element st-question st-row__question st-row__question--flow\",\n asCell: \"st-table__cell\",\n header: \"st-question__header\",\n headerLeft: \"st-question__header--location--left\",\n headerTop: \"st-question__header--location--top\",\n headerBottom: \"st-question__header--location--bottom\",\n content: \"st-question__content\",\n contentLeft: \"st-question__content--left\",\n titleLeftRoot: \"\",\n titleOnAnswer: \"st-question__title--answer\",\n titleOnError: \"st-question__title--error\",\n title: \"st-title st-question__title\",\n requiredText: \"st-question__required-text\",\n number: \"st-question__num\",\n description: \"st-description st-question__description\",\n descriptionUnderInput: \"st-description st-question__description\",\n comment: \"st-comment\",\n required: \"st-question--required\",\n titleRequired: \"st-question__title--required\",\n indent: 20,\n footer: \"st-question__footer\",\n formGroup: \"st-question__form-group\",\n hasError: \"\",\n disabled: \"st-question--disabled\"\n },\n image: { root: \"st-image\", image: \"sv_image_image\" },\n error: {\n root: \"st-question__erbox\",\n icon: \"\",\n item: \"\",\n locationTop: \"st-question__erbox--location--top\",\n locationBottom: \"st-question__erbox--location--bottom\"\n },\n checkbox: {\n root: \"st-selectbase\",\n item: \"st-item st-checkbox st-selectbase__item\",\n itemSelectAll: \"st-checkbox--selectall\",\n itemNone: \"st-checkbox--none\",\n itemDisabled: \"st-item--disabled st-checkbox--disabled\",\n itemChecked: \"st-item--checked st-checkbox--checked\",\n itemHover: \"st-item--allowhover st-checkbox--allowhover\",\n itemInline: \"st-selectbase__item--inline\",\n label: \"st-selectbase__label\",\n labelChecked: \"\",\n itemControl: \"st-visuallyhidden st-item__control st-checkbox__control\",\n itemDecorator: \"st-item__svg st-checkbox__svg\",\n controlLabel: \"st-item__control-label\",\n materialDecorator: \"st-item__decorator st-checkbox__decorator\",\n other: \"st-comment st-question__other\",\n column: \"st-selectbase__column\"\n },\n radiogroup: {\n root: \"st-selectbase\",\n item: \"st-item st-radio st-selectbase__item\",\n itemInline: \"st-selectbase__item--inline\",\n label: \"st-selectbase__label\",\n labelChecked: \"\",\n itemDisabled: \"st-item--disabled st-radio--disabled\",\n itemChecked: \"st-item--checked st-radio--checked\",\n itemHover: \"st-item--allowhover st-radio--allowhover\",\n itemControl: \"st-visuallyhidden st-item__control st-radio__control\",\n itemDecorator: \"st-item__svg st-radio__svg\",\n controlLabel: \"st-item__control-label\",\n materialDecorator: \"st-item__decorator st-radio__decorator\",\n other: \"st-comment st-question__other\",\n clearButton: \"st-btn st-selectbase__clear-btn\",\n column: \"st-selectbase__column\"\n },\n boolean: {\n mainRoot: \"st-question st-row__question st-question--boolean\",\n root: \"\",\n item: \"st-boolean\",\n control: \"st-boolean__control st-visuallyhidden\",\n itemChecked: \"st-boolean--checked\",\n itemIndeterminate: \"st-boolean--indeterminate\",\n itemDisabled: \"st-boolean--disabled\",\n label: \"st-boolean__label\",\n switch: \"st-boolean__switch\",\n disabledLabel: \"st-checkbox__label--disabled\",\n itemDecorator: \"st-checkbox__hidden\",\n materialDecorator: \"st-checkbox__rectangle\",\n sliderText: \"\",\n slider: \"st-boolean__thumb\"\n },\n text: {\n root: \"st-input st-text\",\n small: \"st-row__question--small\",\n controlDisabled: \"st-input--disabled\",\n onError: \"st-input--error\"\n },\n multipletext: {\n root: \"st-multipletext\",\n item: \"st-multipletext__item\",\n itemTitle: \"st-multipletext__item-title\",\n row: \"st-multipletext__row\",\n cell: \"st-multipletext__cell\"\n },\n dropdown: {\n root: \"st-selectbase\",\n small: \"st-row__question--small\",\n control: \"st-input st-dropdown\",\n selectWrapper: \"\",\n other: \"st-comment st-question__other\",\n onError: \"st-input--error\",\n label: \"st-selectbase__label\",\n item: \"st-item st-radio st-selectbase__item\",\n itemDisabled: \"st-item--disabled st-radio--disabled\",\n itemChecked: \"st-item--checked st-radio--checked\",\n itemHover: \"st-item--allowhover st-radio--allowhover\",\n itemControl: \"st-visuallyhidden st-item__control st-radio__control\",\n itemDecorator: \"st-item__svg st-radio__svg\",\n controlDisabled: \"st-input--disabled\",\n controlLabel: \"st-item__control-label\",\n materialDecorator: \"st-item__decorator st-radio__decorator\"\n },\n imagepicker: {\n root: \"st-imagepicker\",\n item: \"st-imagepicker__item\",\n itemInline: \"st-imagepicker__item--inline\",\n itemChecked: \"st-imagepicker__item--checked\",\n itemDisabled: \"st-imagepicker__item--disabled\",\n itemHover: \"st-imagepicker__item--allowhover\",\n label: \"st-imagepicker__label\",\n itemControl: \"st-imagepicker__control\",\n image: \"st-imagepicker__image\",\n itemText: \"st-imagepicker__text\",\n clearButton: \"st-btn\",\n other: \"st-comment st-question__other\"\n },\n matrix: {\n mainRoot: \"st-question st-row__question st-scrollable\",\n tableWrapper: \"st-matrix\",\n root: \"st-table\",\n rowError: \"st-matrix__row--error\",\n cell: \"st-table__cell st-matrix__cell\",\n headerCell: \"st-table__cell st-table__cell--header\",\n label: \"st-item st-radio st-matrix__label\",\n itemValue: \"st-visuallyhidden st-item__control st-radio__control\",\n itemChecked: \"st-radio--checked\",\n itemDisabled: \"st-item--disabled st-radio--disabled\",\n itemHover: \"st-radio--allowhover\",\n materialDecorator: \"st-item__decorator st-radio__decorator\",\n itemDecorator: \"st-item__svg st-radio__svg\",\n cellText: \"st-matrix__text\",\n cellTextSelected: \"st-matrix__text--checked\",\n cellTextDisabled: \"st-matrix__text--disabled\"\n },\n matrixdropdown: {\n mainRoot: \"st-question st-row__question st-scrollable\",\n root: \"st-table\",\n cell: \"st-table__cell\",\n headerCell: \"st-table__cell st-table__cell--header\"\n },\n matrixdynamic: {\n mainRoot: \"st-question st-row__question st-scrollable\",\n root: \"st-table st-matrixdynamic\",\n cell: \"st-table__cell\",\n headerCell: \"st-table__cell st-table__cell--header\",\n button: \"st-btn\",\n detailRow: \"st-table__row st-table__row--detail\",\n detailButton: \"st-table__cell--detail-button\",\n detailButtonExpanded: \"st-table__cell--detail-button--expanded\",\n detailIcon: \"st-detail-panel__icon\",\n detailIconExpanded: \"st-detail-panel__icon--expanded\",\n detailPanelCell: \"st-table__cell--detail-panel\",\n actionsCell: \"st-table__cell st-table__cell--actions\",\n buttonAdd: \"st-matrixdynamic__add-btn\",\n buttonRemove: \"st-matrixdynamic__remove-btn\",\n iconAdd: \"\",\n iconRemove: \"\"\n },\n rating: {\n root: \"st-rating\",\n item: \"st-rating__item\",\n itemHover: \"st-rating__item--allowhover\",\n selected: \"st-rating__item--selected\",\n minText: \"st-rating__item-text st-rating__min-text\",\n itemText: \"st-rating__item-text\",\n maxText: \"st-rating__item-text st-rating__max-text\",\n itemDisabled: \"st-rating__item--disabled\"\n },\n comment: {\n root: \"st-comment\",\n small: \"st-row__question--small\"\n },\n expression: \"\",\n file: {\n root: \"st-file\",\n other: \"st-comment st-question__other\",\n placeholderInput: \"st-visuallyhidden\",\n preview: \"st-file__preview\",\n fileSign: \"st-hidden\",\n fileSignBottom: \"st-file__sign\",\n fileDecorator: \"st-file__decorator\",\n fileInput: \"st-visuallyhidden\",\n noFileChosen: \"st-description st-file__no-file-chosen\",\n chooseFile: \"st-btn st-file__choose-btn\",\n disabled: \"st-file__choose-btn--disabled\",\n removeButton: \"st-hidden\",\n removeButtonBottom: \"st-btn st-file__clean-btn\",\n removeFile: \"st-hidden\",\n removeFileSvg: \"st-file__remove-svg\",\n wrapper: \"st-file__wrapper\"\n },\n signaturepad: {\n root: \"st-signaturepad sjs_sp_container\",\n small: \"st-row__question--small\",\n controls: \"sjs_sp_controls\",\n placeholder: \"sjs_sp_placeholder\",\n clearButton: \"sjs_sp_clear\"\n },\n saveData: {\n root: \"\",\n saving: \"\",\n error: \"\",\n success: \"\",\n saveAgainButton: \"\"\n },\n window: {\n root: \"sv_window\",\n body: \"sv_window_content\",\n header: {\n root: \"sv_window_title\",\n title: \"\",\n button: \"\",\n buttonExpanded: \"\",\n buttonCollapsed: \"\"\n }\n }\n};\n","// extracted by mini-css-extract-plugin","import { property, Base, propertyArray, SurveyModel, HashTable, LocalizableString, JsonObjectProperty, Serializer, PageModel, surveyLocalization, ILocalizableString, ItemValue, QuestionCheckboxModel, PopupModel, ListModel, PanelModelBase, QuestionMatrixDropdownModel, PanelModel, Action, IAction, QuestionCommentModel, MatrixDropdownCell, QuestionTextBase, ComputedUpdater, createDropdownActionModel, Helpers } from \"survey-core\";\nimport { unparse, parse } from \"papaparse\";\nimport { editorLocalization } from \"../../editorLocalization\";\nimport { EmptySurveyCreatorOptions, ISurveyCreatorOptions, settings } from \"../../creator-settings\";\nimport { setSurveyJSONForPropertyGrid } from \"../../property-grid/index\";\n\nrequire(\"./translation.scss\");\nimport { SurveyHelper } from \"../../survey-helper\";\nimport { propertyGridCss } from \"../../property-grid-theme/property-grid\";\nimport { translationCss } from \"./translation-theme\";\nimport { capitalize } from \"../../utils/utils\";\n\nexport class TranslationItemBase extends Base {\n constructor(public name: string, protected translation: ITranslationLocales) {\n super();\n }\n public get isGroup() {\n return false;\n }\n public fillLocales(locales: Array<string>) { }\n public mergeLocaleWithDefault(loc: string) { }\n public makeObservable() {\n this.fireOnObjCreating();\n }\n public deleteLocaleStrings(locale: string): void { }\n protected fireOnObjCreating(obj: Base = null) {\n if (this.translation) {\n if (!obj) obj = this;\n this.translation.fireOnObjCreating(obj);\n }\n }\n}\n\nexport class TranslationItemString extends Base {\n constructor(public locString: ILocalizableString, public locale: string) {\n super();\n this.text = this.locString.getLocaleText(this.locale);\n }\n @property() text: string;\n @property() placeholder: string;\n protected onPropertyValueChanged(name: string, oldValue: any, newValue: any) {\n super.onPropertyValueChanged(name, oldValue, newValue);\n if (name === \"text\") {\n this.locString.setLocaleText(this.locale, newValue);\n }\n }\n public getType(): string {\n return \"translationitemstring\";\n }\n}\n\nexport class TranslationItem extends TranslationItemBase {\n private hashValues: HashTable<TranslationItemString>;\n public customText: string;\n public afterRender: any;\n constructor(\n public name: string,\n public locString: ILocalizableString,\n public defaultValue: string = \"\",\n translation: ITranslationLocales,\n public context: any, private property: JsonObjectProperty = null\n ) {\n super(name, translation);\n if (!!this.translation) {\n this.readOnly = this.translation.readOnly;\n }\n this.hashValues = {};\n var self = this;\n this.afterRender = function (el: any, data: any) {\n if (!!self.translation) {\n self.translation.translateItemAfterRender(self, el, data.locale);\n }\n };\n this.fireOnObjCreating();\n }\n public get maxLength(): number {\n return !!this.property ? this.property.maxLength : -1;\n }\n public makeObservable() {\n super.makeObservable();\n for (var loc in this.hashValues) {\n this.fireOnObjCreating(this.hashValues[loc]);\n }\n }\n public getType(): string {\n return \"translationitem\";\n }\n @property({ defaultValue: false }) readOnly: boolean;\n public get text() {\n return !!this.customText ? this.customText : this.localizableName;\n }\n public get localizableName(): string {\n const type = this.context && this.context.getType && this.context.getType();\n return editorLocalization.getPropertyNameInEditor(type, this.name);\n }\n public getLocText(loc: string): string {\n return this.locString.getLocaleText(loc);\n }\n public setLocText(loc: string, newValue: string) {\n this.locString.setLocaleText(loc, newValue);\n !!this.translation.tranlationChangedCallback &&\n this.translation.tranlationChangedCallback(\n loc,\n this.name,\n newValue,\n this.context\n );\n }\n public values(loc: string): TranslationItemString {\n if (!this.hashValues[loc]) {\n var val = new TranslationItemString(this.locString, loc);\n if (!loc) {\n val.placeholder = this.defaultValue;\n }\n this.hashValues[loc] = val;\n this.fireOnObjCreating(val);\n }\n return this.hashValues[loc];\n }\n public fillLocales(locales: Array<string>) {\n var keys = this.getKeys();\n for (var i = 0; i < keys.length; i++) {\n let key = keys[i];\n if (\n !!key &&\n locales.indexOf(key) < 0 &&\n key !== LocalizableString.defaultLocale\n ) {\n locales.push(key);\n }\n }\n }\n public toJSON(): any {\n var json = this.locString.getJson();\n json = this.correctJSON(json);\n if (!json || typeof json === \"string\") return { default: json };\n return json;\n }\n private correctJSON(json: any): any {\n if (!json || typeof json === \"string\") return json;\n if (Array.isArray(json)) return json.join(\"\\n\");\n for (let key in json) {\n if (Array.isArray(json[key])) {\n json[key] = json[key].join(\"\\n\");\n }\n }\n return json;\n }\n private getKeys(): Array<string> {\n return this.locString.getLocales();\n }\n public mergeLocaleWithDefault(loc: string): void {\n var locText = this.locString.getLocaleText(loc);\n if (!locText) return;\n this.locString.setLocaleText(\"\", locText);\n this.locString.setLocaleText(loc, null);\n }\n public deleteLocaleStrings(locale: string): void {\n this.setLocText(locale, \"\");\n }\n public getPlaceholder(locale: string): string {\n const placeholderText = editorLocalization.getString(\"ed.translationPlaceHolder\", locale);\n if (this.context instanceof SurveyModel) {\n return surveyLocalization.getString(this.name, locale) || placeholderText;\n }\n if (!(this.context instanceof PageModel) && this.name === \"title\") {\n return this.getPlaceholderText(locale) || this.context.name;\n }\n if (this.context.ownerPropertyName === \"choices\" && this.context.getType() === \"itemvalue\") {\n return this.getPlaceholderText(locale) || this.getItemValuePlaceholderText() || placeholderText;\n }\n return placeholderText;\n }\n public getTextForExport(loc: string): string {\n const res = this.locString.getLocaleText(loc);\n if (!!res) return res;\n const index = loc.indexOf(\"-\");\n if (index < 0) return \"\";\n return this.getPlaceholderText(loc);\n }\n public getPlaceholderText(loc: string): string {\n if (!loc || loc === \"default\") return \"\";\n const root = this.getRootDialect(loc);\n return this.locString.getLocaleText(root);\n }\n private getRootDialect(loc: string): string {\n const index = loc.indexOf(\"-\");\n if (index < 0) return \"\";\n loc = loc.substring(0, index);\n return loc === surveyLocalization.defaultLocale ? \"\" : loc;\n }\n private getItemValuePlaceholderText(): string {\n const val = this.context.value;\n return !Helpers.isValueEmpty(val) ? val.toString() : \"\";\n }\n}\n\nexport interface ITranslationLocales {\n locales: Array<string>;\n showAllStrings: boolean;\n readOnly: boolean;\n getLocaleName(loc: string): string;\n availableTranlationsChangedCallback: () => void;\n tranlationChangedCallback: (\n locale: string,\n name: string,\n value: string,\n context: any\n ) => void;\n translateItemAfterRender(item: TranslationItem, el: any, locale: string);\n fireOnObjCreating(obj: Base);\n removeLocale(loc: string): void;\n canShowProperty(obj: Base, prop: JsonObjectProperty, isEmpty: boolean): boolean;\n getProcessedTranslationItemText(locale: string, name: ILocalizableString, newValue: string, context: any): string;\n}\n\nexport class TranslationGroup extends TranslationItemBase {\n private isRootValue: boolean = false;\n private itemValues: Array<TranslationItemBase>;\n constructor(public name, public obj: any, translation: ITranslationLocales = null, public text: string = \"\", public hasIndent: boolean = false) {\n super(name, translation);\n if (!this.text) {\n this.text = name;\n }\n this.reset();\n this.fireOnObjCreating();\n }\n public getType(): string {\n return \"translationgroup\";\n }\n @property({ defaultValue: true }) showHeader: boolean;\n public get items(): Array<TranslationItemBase> {\n return this.itemValues;\n }\n public get locItems(): Array<TranslationItem> {\n return this.itemValues.filter(\n (item) => item instanceof TranslationItem\n ) as Array<TranslationItem>;\n }\n public get isRoot(): boolean {\n return this.isRootValue;\n }\n setAsRoot() {\n this.isRootValue = true;\n }\n public getItemByName(name: string): TranslationItemBase {\n for (var i = 0; i < this.itemValues.length; i++) {\n if (this.itemValues[i].name == name) return this.itemValues[i];\n }\n return null;\n }\n public get groups(): Array<TranslationGroup> {\n return this.itemValues.filter(\n (item) => item instanceof TranslationGroup\n ) as Array<TranslationGroup>;\n }\n\n public get isGroup() {\n return true;\n }\n public get locales() {\n return !!this.translation ? this.translation.locales : null;\n }\n public get removeLocaleText() {\n return editorLocalization.getString(\"pe.remove\");\n }\n public get localeCount(): number {\n return !!Array.isArray(this.locales) ? this.locales.length : 0;\n }\n public get locWidth(): string {\n var count = this.localeCount;\n if (count < 2) return \"100%\";\n return Math.floor(100 / count).toString() + \"%\";\n }\n public getLocaleName(loc: string) {\n return this.translation\n ? this.translation.getLocaleName(loc)\n : editorLocalization.getLocaleName(loc);\n }\n public removeLocale = (loc: string) => {\n this.translation && this.translation.removeLocale(loc);\n };\n public reset() {\n this.itemValues = [];\n this.fillItems();\n }\n public fillLocales(locales: Array<string>) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].fillLocales(locales);\n }\n }\n public makeObservable() {\n super.makeObservable();\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].makeObservable();\n }\n }\n public get showAllStrings(): boolean {\n return !!this.translation ? this.translation.showAllStrings : true;\n }\n public get hasItems(): boolean {\n if (this.locItems.length > 0) return true;\n var groups = this.groups;\n for (var i = 0; i < groups.length; i++) {\n if (groups[i].hasItems) return true;\n }\n return false;\n }\n public mergeLocaleWithDefault(loc: string) {\n this.itemValues.forEach((item) => item.mergeLocaleWithDefault(loc));\n }\n public deleteLocaleStrings(locale: string): void {\n this.items.forEach(item => item.deleteLocaleStrings(locale));\n }\n private fillItems() {\n if (this.isItemValueArray(this.obj)) {\n this.createItemValuesLocale();\n return;\n }\n if (!this.obj || !this.obj.getType) return;\n var properties = this.getLocalizedProperties(this.obj);\n for (var i = 0; i < properties.length; i++) {\n var property = properties[i];\n var item = this.createTranslationItem(this.obj, properties[i]);\n if (!!item) {\n this.itemValues.push(item);\n }\n }\n properties = this.getArrayProperties(this.obj);\n for (var i = 0; i < properties.length; i++) {\n var property = properties[i];\n var value = this.obj[property.name];\n //If ItemValue array?\n if (this.isItemValueArray(value)) {\n if (this.canShowProperty(property, Array.isArray(value) && value.length > 0)) {\n const group = new TranslationGroup(\n property.name,\n value,\n this.translation,\n editorLocalization.getPropertyName(property.name),\n true\n );\n if (group.hasItems) {\n this.itemValues.push(group);\n }\n }\n } else {\n this.createGroups(value, property);\n }\n }\n this.sortItems();\n }\n private sortItems() {\n if (!settings.translation.sortByName) return;\n this.itemValues.sort(function (\n a: TranslationItemBase,\n b: TranslationItemBase\n ) {\n if (!a.name) return -1;\n if (!b.name) return 1;\n return a.name.localeCompare(b.name);\n });\n }\n private getLocalizedProperties(obj: any): Array<JsonObjectProperty> {\n var res = [];\n var properties = Serializer.getPropertiesByObj(obj);\n for (var i = 0; i < properties.length; i++) {\n var property = properties[i];\n if (!property.isSerializable || !property.isLocalizable) continue;\n if (property.readOnly || !property.visible) continue;\n res.push(property);\n }\n return res;\n }\n private getArrayProperties(obj: any): Array<JsonObjectProperty> {\n var res = [];\n var properties = Serializer.getPropertiesByObj(obj);\n for (var i = 0; i < properties.length; i++) {\n var property = properties[i];\n if (property.isSerializable === false) continue;\n var value = obj[property.name];\n if (!!value && Array.isArray(value) && value.length > 0) {\n res.push(property);\n }\n }\n return res;\n }\n private canShowProperty(property: JsonObjectProperty, isEmpty: boolean): boolean {\n if (!!this.translation && !this.translation.canShowProperty(this.obj, property, isEmpty)) return false;\n return true;\n }\n private createTranslationItem(obj: any, property: JsonObjectProperty): TranslationItem {\n const defaultValue = this.getDefaultValue(obj, property);\n const locStr = <LocalizableString>obj[property.serializationProperty];\n if (!locStr) return null;\n if (!this.showAllStrings && !defaultValue && locStr.isEmpty) return null;\n if (!this.canShowProperty(property, locStr.isEmpty)) return null;\n return new TranslationItem(\n property.name,\n locStr,\n defaultValue,\n this.translation,\n obj,\n property\n );\n }\n private getDefaultValue(obj: any, property: JsonObjectProperty): string {\n if (\n property.name == \"title\" &&\n property.isLocalizable &&\n !!property.serializationProperty\n ) {\n var locStr = <LocalizableString>obj[property.serializationProperty];\n if (\n !!locStr &&\n obj.getType() != \"page\" &&\n (!!locStr.onGetTextCallback || locStr[\"onRenderedHtmlCallback\"])\n )\n return obj[\"name\"];\n }\n return \"\";\n }\n private isItemValueArray(val: any) {\n return (\n !!val &&\n Array.isArray(val) &&\n val.length > 0 &&\n !!val[0] &&\n !!val[0][\"getType\"] &&\n !!val[0][\"setData\"] &&\n !!val[0][\"setLocText\"]\n );\n }\n private createGroups(value: any, property: JsonObjectProperty) {\n for (let i = 0; i < value.length; i++) {\n const obj = value[i];\n if (!!obj && obj.getType) {\n let name = obj[\"name\"];\n let text = name;\n if (!name) {\n const index = \"[\" + i.toString() + \"]\";\n name = property.name + index;\n text = editorLocalization.getPropertyName(property.name) + index;\n }\n var group = new TranslationGroup(name, obj, this.translation, text);\n if (group.hasItems) {\n this.itemValues.push(group);\n }\n }\n }\n }\n private createItemValuesLocale() {\n for (var i = 0; i < this.obj.length; i++) {\n var val = this.obj[i];\n var canAdd =\n this.showAllStrings || !val.locText.isEmpty || isNaN(val.value);\n if (!canAdd) continue;\n var item = new TranslationItem(\n val.value,\n val.locText,\n val.value,\n this.translation,\n val\n );\n this.itemValues.push(item);\n this.addCustomPropertiesForItemValue(this.obj[i], item);\n }\n }\n private addCustomPropertiesForItemValue(\n itemValue: any,\n textItem: TranslationItem\n ) {\n var locProperties = this.getLocalizedProperties(itemValue);\n for (var i = 0; i < locProperties.length; i++) {\n if (locProperties[i].name == \"text\") continue;\n var item = this.createTranslationItem(itemValue, locProperties[i]);\n if (!!item) {\n item.customText = textItem.text + \" (\" + item.localizableName + \")\";\n item.name = itemValue.value + \".\" + item.name;\n this.itemValues.push(item);\n }\n }\n }\n}\n\nexport class Translation extends Base implements ITranslationLocales {\n public static csvDelimiter = \",\";\n public static newLineDelimiter = \"\\n\";\n public exportToCSVFileUI: any;\n public importFromCSVFileUI: any;\n public importItemCallback: (name: string, locale: string, text: string) => string;\n public importFinishedCallback: () => void;\n public translateItemAfterRenderCallback: (\n item: TranslationItem,\n el: any,\n locale: string\n ) => void;\n public availableTranlationsChangedCallback: () => void;\n public tranlationChangedCallback: (\n locale: string,\n name: string,\n value: string,\n context: any\n ) => void;\n public translationStringVisibilityCallback: (obj: Base, propertyName: string, visible: boolean) => boolean;\n public localeInitialVisibleCallback: (locale: string) => boolean;\n private surveyValue: SurveyModel;\n private settingsSurveyValue: SurveyModel;\n private onBaseObjCreatingCallback: (obj: Base) => void;\n private addLanguageAction: Action;\n public chooseLanguageActions: Array<IAction> = [];\n\n constructor(\n survey: SurveyModel,\n private options: ISurveyCreatorOptions = null,\n private hasUI: boolean = true\n ) {\n super();\n if (!this.options) this.options = new EmptySurveyCreatorOptions();\n var self = this;\n this.exportToCSVFileUI = function () {\n self.exportToSCVFile(settings.translation.exportFileName);\n };\n this.importFromCSVFileUI = function (el) {\n if (el.files.length < 1) return;\n self.importFromCSVFile(el.files[0]);\n el.value = \"\";\n };\n this.settingsSurveyValue = this.createSettingsSurvey();\n this.surveyValue = survey;\n this.setupToolbarItems();\n this.updateChooseLanguageActions();\n }\n getProcessedTranslationItemText(locale: string, locString: ILocalizableString, newText: string, context: any): string {\n return this.options.getProcessedTranslationItemText(locale, locString, newText, context);\n }\n public getType(): string {\n return \"translation\";\n }\n @propertyArray() locales: Array<string>;\n @property() canMergeLocaleWithDefault: boolean;\n @property() mergeLocaleWithDefaultText: string;\n @property({\n defaultValue: false, onSet: (_, target: Translation) => {\n target.updateReadOnly();\n }\n }) readOnly: boolean;\n @property() root: TranslationGroup;\n @property({\n defaultValue: false, onSet: (_, target: Translation) => {\n target.reset();\n }\n }) showAllStrings: boolean;\n @property({\n onSet: (_, target: Translation) => {\n target.reset();\n }\n }) filteredPage: PageModel;\n @property() stringsSurvey: SurveyModel;\n @property() stringsHeaderSurvey: SurveyModel;\n @property({ defaultValue: true }) isEmpty: boolean;\n\n public makeObservable(onBaseObjCreating: (obj: Base) => void) {\n this.onBaseObjCreatingCallback = onBaseObjCreating;\n this.fireOnObjCreating(this);\n this.root.makeObservable();\n }\n public fireOnObjCreating(obj: Base) {\n if (!this.onBaseObjCreatingCallback) return;\n this.onBaseObjCreatingCallback(obj);\n }\n public get settingsSurvey(): SurveyModel {\n return this.settingsSurveyValue;\n }\n public get localesQuestion(): QuestionCheckboxModel {\n return <QuestionCheckboxModel>(\n this.settingsSurvey.getQuestionByName(\"locales\")\n );\n }\n public deleteLocaleStrings(locale: string): void {\n if(!this.root) {\n this.reset();\n }\n if(!this.root) return;\n this.root.deleteLocaleStrings(locale);\n }\n protected createSettingsSurvey(): SurveyModel {\n var json = this.getSettingsSurveyJSON();\n setSurveyJSONForPropertyGrid(json);\n var res = this.options.createSurvey(json, \"translation_settings\");\n res.css = propertyGridCss;\n res.css.root += \" st-properties\";\n res.onValueChanged.add((sender, options) => {\n if (options.name == \"locales\") {\n this.updateLocales();\n }\n });\n res.onGetPanelTitleActions.add((sender, options) => {\n if (options.panel.name == \"languages\") {\n options.titleActions = [this.addLanguageAction];\n }\n });\n return res;\n }\n\n @property({ defaultValue: true }) private isChooseLanguageEnabled: boolean;\n\n private calcIsChooseLanguageEnabled() {\n this.isChooseLanguageEnabled = this.chooseLanguageActions.filter((item: IAction) => item.visible).length > 0;\n }\n\n private updateLocales() {\n if (!this.localesQuestion) return;\n var res = [\"\"];\n var val = this.localesQuestion.value;\n if (!Array.isArray(val)) val = [];\n for (var i = 0; i < val.length; i++) {\n res.push(val[i]);\n }\n this.locales = res;\n this.canMergeLocaleWithDefault = this.hasLocale(this.defaultLocale);\n }\n private getSettingsSurveyJSON(): any {\n const defaultLanguageText = this.getLocaleName(\"\");\n return {\n elements: [\n {\n type: \"panel\",\n name: \"languages\",\n elements: [\n {\n type: \"checkbox\",\n name: \"defaultLanguage\",\n titleLocation: \"hidden\",\n readOnly: true,\n choices: [defaultLanguageText],\n defaultValue: [defaultLanguageText]\n },\n {\n type: \"checkbox\",\n name: \"locales\",\n choicesVisibleIf: \"{selLocales} contains {item}\",\n titleLocation: \"hidden\",\n maxSelectedChoices: settings.translation.maximumSelectedLocales\n }\n ],\n title: editorLocalization.getString(\"ed.translationLanguages\")\n }\n ]\n };\n }\n public getSurveyLocales() {\n const usedLocales = new Array<ItemValue>();\n var sLocales = surveyLocalization.supportedLocales;\n var locales =\n Array.isArray(sLocales) && sLocales.length > 0\n ? sLocales\n : (<any>surveyLocalization).getLocales();\n var addedLocales = {};\n for (var i = 0; i < locales.length; i++) {\n this.addLocaleIntoChoices(locales[i], usedLocales, addedLocales);\n }\n locales = this.settingsSurvey.getValue(\"selLocales\");\n if (!locales) locales = [];\n for (var i = 0; i < locales.length; i++) {\n this.addLocaleIntoChoices(locales[i], usedLocales, addedLocales);\n }\n return [usedLocales, locales];\n }\n private updateSettingsSurveyLocales() {\n let [choices, locales] = this.getSurveyLocales();\n this.localesQuestion.choices = choices;\n const selectedLocales = [];\n if (!locales) locales = [];\n for (var i = 0; i < locales.length; i++) {\n if (!!this.localeInitialVisibleCallback && !this.localeInitialVisibleCallback(locales[i])) continue;\n selectedLocales.push(locales[i]);\n }\n const maxLocales = settings.translation.maximumSelectedLocales;\n if (maxLocales > 0 && selectedLocales.length > maxLocales) {\n selectedLocales.splice(maxLocales);\n }\n this.localesQuestion.value = selectedLocales;\n }\n private resetStringsSurvey() {\n if (!this.hasUI) return;\n this.stringsSurvey = this.createStringsSurvey();\n this.stringsHeaderSurvey = this.createStringsHeaderSurvey();\n this.updateReadOnly();\n }\n private createStringsSurvey(): SurveyModel {\n var json = { autoGrowComment: true };\n setSurveyJSONForPropertyGrid(json, false);\n var survey: SurveyModel = this.options.createSurvey(json, \"translation_strings\");\n survey.lazyRendering = true;\n survey.skeletonComponentName = \"sd-translation-line-skeleton\";\n survey.startLoadingFromJson();\n survey.css = translationCss;\n survey.addNewPage(\"page\");\n this.addTranslationGroupIntoStringsSurvey(survey.pages[0], this.root, null);\n survey.data = this.getStringsSurveyData(survey);\n survey.endLoadingFromJson();\n const getTransationItem = (question: QuestionMatrixDropdownModel, rowName: any): TranslationItem => {\n var itemValue = ItemValue.getItemByValue(question.rows, rowName);\n return !!itemValue ? itemValue[\"translationData\"] : null;\n };\n survey.onMatrixCellCreated.add((sender: SurveyModel, options: any) => {\n if (options.cell.question instanceof QuestionCommentModel) {\n const cellQuestion = <QuestionCommentModel>options.cell.question;\n const item = getTransationItem(options.question, options.row.name);\n this.setPlaceHolder(cellQuestion, item, options.columnName);\n const isMultiLine = !!item ? item.locString.getIsMultiple() : false;\n cellQuestion.acceptCarriageReturn = isMultiLine;\n if (!!item) {\n cellQuestion.maxLength = item.maxLength;\n }\n if (!isMultiLine) {\n cellQuestion.rows = 1;\n }\n }\n });\n survey.onMatrixCellValueChanging.add((_: SurveyModel, options: any) => {\n const item = getTransationItem(options.question, options.row.name);\n if(!!item) {\n options.value = this.getProcessedTranslationItemText(options.columnName, item.locString, options.value, item.context);\n }\n });\n survey.onMatrixCellValueChanged.add((sender: SurveyModel, options: any) => {\n const item = getTransationItem(options.question, options.row.name);\n if (!!item) {\n item.setLocText(options.columnName, options.value);\n const colName = options.columnName;\n options.row.cells.forEach(cell => {\n if (colName === \"default\" || cell.column.name.indexOf(colName + \"-\") === 0)\n this.setPlaceHolder(<QuestionCommentModel>cell.question, item, cell.column.name);\n });\n }\n });\n survey.currentPage = survey.pages[0];\n return survey;\n }\n private setPlaceHolder(cellQuestion: QuestionCommentModel, item: TranslationItem, locale: string) {\n cellQuestion.placeholder = item.getPlaceholder(locale);\n }\n private createStringsHeaderSurvey() {\n let json = {};\n setSurveyJSONForPropertyGrid(json, false);\n let survey: SurveyModel = this.options.createSurvey(json, \"translation_strings_header\");\n survey.css = translationCss;\n const newPage = survey.addNewPage(\"page\");\n\n let matrix = <QuestionMatrixDropdownModel>(Serializer.createClass(\"matrixdropdown\"));\n matrix.name = \"stringsHeader\";\n matrix.titleLocation = \"hidden\";\n this.addLocaleColumns(matrix);\n\n newPage.addQuestion(matrix);\n survey.currentPage = survey.pages[0];\n return survey;\n }\n private addTranslationGroupIntoStringsSurvey(\n panel: PanelModelBase,\n group: TranslationGroup,\n parent: TranslationGroup\n ) {\n for (var i = 0; i < group.items.length; i++) {\n if (group.items[i].isGroup) continue;\n let item = <TranslationItem>group.items[i];\n let matrix = <QuestionMatrixDropdownModel>(\n Serializer.createClass(\"matrixdropdown\")\n );\n matrix.cellType = \"comment\";\n matrix.titleLocation = \"hidden\";\n matrix.name = this.getStringsSurveyQuestionName(group, parent) + i;\n matrix.showHeader = false;\n panel.addQuestion(matrix);\n this.addLocaleColumns(matrix);\n // let matrix = <QuestionMatrixDropdownModel>panel.questions[0];\n var itemValue = new ItemValue(item.name, item.text);\n itemValue[\"translationData\"] = item;\n matrix.rows.push(itemValue);\n }\n for (var i = 0; i < group.items.length; i++) {\n if (!group.items[i].isGroup) continue;\n let item = <TranslationGroup>group.items[i];\n var pnl = <PanelModel>Serializer.createClass(\"panel\");\n pnl.name = item.name;\n panel.addElement(pnl);\n pnl.title = item.text;\n if (item.hasIndent) {\n pnl.cssClasses.panel.content += \" st-panel-indent\";\n }\n this.addTranslationGroupIntoStringsSurvey(pnl, item, group);\n }\n }\n private addLocaleColumns(matrix: QuestionMatrixDropdownModel) {\n var locs = this.getSelectedLocales();\n matrix.addColumn(\"default\", this.getLocaleName(\"\"));\n for (var i = 0; i < locs.length; i++) {\n matrix.addColumn(locs[i], this.getLocaleName(locs[i]));\n }\n }\n private getStringsSurveyQuestionName(\n group: TranslationGroup,\n parent: TranslationGroup\n ): string {\n if (parent == null || group.obj.name == group.name)\n return group.name + \"_props\";\n return parent.name + \"_\" + group.name;\n }\n private getStringsSurveyData(survey: SurveyModel): any {\n var res = {};\n var questions = survey.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n res[questions[i].name] = this.getStringsQuestionData(\n <QuestionMatrixDropdownModel>questions[i]\n );\n }\n return res;\n }\n private getStringsQuestionData(matrix: QuestionMatrixDropdownModel): any {\n var res = {};\n for (var i = 0; i < matrix.rows.length; i++) {\n var itemValue = matrix.rows[i];\n var item: TranslationItem = itemValue[\"translationData\"];\n var value = item.toJSON();\n if (!!value) {\n res[itemValue.value] = value;\n }\n }\n return res;\n }\n private updateHeaderStringsSurveyColumns() {\n if (!this.stringsHeaderSurvey) return;\n let matrix = <QuestionMatrixDropdownModel>(\n this.stringsHeaderSurvey.getQuestionByName(\"stringsHeader\")\n );\n matrix.columns = [];\n this.addLocaleColumns(matrix);\n }\n private updateStringsSurveyColumns() {\n if (!this.stringsSurvey) return;\n var questions = this.stringsSurvey.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n var matrix = <QuestionMatrixDropdownModel>questions[i];\n matrix.beginUpdate();\n matrix.columns = [];\n this.addLocaleColumns(matrix);\n matrix.endUpdate();\n }\n }\n private addLocaleIntoChoices(\n loc: string,\n choices: Array<ItemValue>,\n addedLocales: any\n ) {\n if (!loc || addedLocales[loc]) return;\n addedLocales[loc] = true;\n choices.push(new ItemValue(loc, this.getLocaleName(loc)));\n }\n private addLocaleIntoValue(loc: string, updateValue: boolean) {\n this.addLocaleIntoValueCore(\"selLocales\", loc);\n if (updateValue) {\n this.addLocaleIntoValueCore(\"locales\", loc);\n }\n }\n private addLocaleIntoValueCore(valueName: string, loc: string) {\n if (!loc) return;\n var val = this.settingsSurvey.getValue(valueName);\n if (!Array.isArray(val)) val = [];\n if (val.indexOf(loc) < 0 && (valueName !== \"locales\" || val.length < settings.translation.maximumSelectedLocales)) {\n val.push(loc);\n this.settingsSurvey.setValue(valueName, val);\n }\n }\n private isLocaleVisible(locales: string[], locale: string): boolean {\n return locale !== surveyLocalization.defaultLocale && locales.indexOf(locale) < 0;\n }\n private setupToolbarItems() {\n this.chooseLanguageActions = this.getSurveyLocales()[0].map((locale: ItemValue) => (\n new Action(\n {\n id: locale.value,\n title: this.getLocaleName(locale.value),\n data: locale\n }\n )\n ));\n\n this.addLanguageAction = createDropdownActionModel({\n id: \"svc-translation-choose-language\",\n iconName: \"icon-add\",\n enabled: <any>(new ComputedUpdater(() => this.isChooseLanguageEnabled)),\n }, {\n items: this.chooseLanguageActions,\n allowSelection: false,\n onSelectionChanged: (item: IAction) => {\n this.addLocale(item.id);\n }\n });\n }\n protected onPropertyValueChanged(name: string, oldValue: any, newValue: any) {\n super.onPropertyValueChanged(name, oldValue, newValue);\n if (name === \"canMergeLocaleWithDefault\") {\n this.mergeLocaleWithDefaultText = this.getMergeLocaleWithDefaultText();\n }\n if (name === \"locales\") {\n this.updateHeaderStringsSurveyColumns();\n this.updateStringsSurveyColumns();\n }\n }\n private getMergeLocaleWithDefaultText(): string {\n if (!this.canMergeLocaleWithDefault) return \"\";\n const locText = this.getLocaleName(this.defaultLocale);\n return editorLocalization.getString(\"ed.translationMergeLocaleWithDefault\")[\"format\"](locText);\n }\n\n public get survey(): SurveyModel {\n return this.surveyValue;\n }\n public set survey(val: SurveyModel) {\n this.surveyValue = val;\n this.settingsSurvey.setValue(\"selLocales\", []);\n this.reset();\n }\n public reset(resetSelectedLocales: boolean = false): void {\n var rootObj = !!this.filteredPage ? this.filteredPage : this.survey;\n var rootName = !!this.filteredPage ? rootObj[\"name\"] : \"survey\";\n this.root = new TranslationGroup(rootName, rootObj, this);\n this.root.setAsRoot();\n this.root.reset();\n this.resetLocales();\n this.isEmpty = !this.root.hasItems;\n this.updateSettingsSurveyLocales();\n this.updateLocales();\n this.resetStringsSurvey();\n this.updateChooseLanguageActions();\n }\n private updateReadOnly(): void {\n if (this.stringsSurvey) {\n this.stringsSurvey.mode = this.readOnly ? \"display\" : \"edit\";\n }\n }\n\n public canShowProperty(obj: Base, prop: JsonObjectProperty, isEmpty: boolean): boolean {\n const result = !isEmpty || SurveyHelper.isPropertyVisible(obj, prop, this.options);\n return this.translationStringVisibilityCallback ? this.translationStringVisibilityCallback(obj, prop.name, result) : result;\n }\n public get defaultLocale(): string {\n return surveyLocalization.defaultLocale;\n }\n public getLocaleName(loc: string) {\n return editorLocalization.getLocaleName(loc, this.defaultLocale);\n }\n public removeLocale(locale: string) {\n if (this.hasLocale(locale)) {\n const index = this.locales.indexOf(locale);\n const locales = this.locales;\n locales.splice(index, 1);\n this.locales = locales;\n this.canMergeLocaleWithDefault = this.hasLocale(this.defaultLocale);\n }\n }\n public hasLocale(locale: string): boolean {\n var locales = this.locales;\n for (var i = 0; i < locales.length; i++) {\n if (locales[i] == locale) return true;\n }\n return false;\n }\n public addLocale(locale: string) {\n if (!this.hasLocale(locale)) {\n this.addLocaleIntoValue(locale, true);\n }\n this.updateChooseLanguageActions();\n }\n private updateChooseLanguageActions(): void {\n const actions = this.chooseLanguageActions;\n let locales = this.settingsSurvey.getValue(\"selLocales\");\n if (!locales) locales = [];\n if (Array.isArray(actions)) {\n actions.forEach(item => item.visible = this.isLocaleVisible(locales, item.data.value));\n }\n this.calcIsChooseLanguageEnabled();\n }\n public resetLocales(): void {\n var locales = [\"\"];\n this.root.fillLocales(locales);\n this.setLocales(locales);\n }\n public getSelectedLocales(): Array<string> {\n var res = this.localesQuestion.value;\n return Array.isArray(res) ? res : [];\n }\n public setSelectedLocales(selectedLocales: Array<string>) {\n this.localesQuestion.value = selectedLocales;\n }\n public get noStringsText(): string {\n return editorLocalization.getString(\"ed.translationNoStrings\");\n }\n public exportToCSV(): string {\n if(!this.root) {\n this.reset();\n }\n let res = [];\n let headerRow = [];\n let visibleLocales = this.locales;\n headerRow.push(\"description ↓ - language →\");\n for (let i = 0; i < visibleLocales.length; i++) {\n headerRow.push(!!visibleLocales[i] ? visibleLocales[i] : \"default\");\n }\n res.push(headerRow);\n let itemsHash = <HashTable<TranslationItem>>{};\n this.fillItemsHash(\"\", this.root, itemsHash);\n for (let key in itemsHash) {\n let row = [key];\n let item: TranslationItem = itemsHash[key];\n for (let i = 0; i < visibleLocales.length; i++) {\n const loc = visibleLocales[i];\n let val = item.getTextForExport(loc);\n val = !val && i == 0 ? item.defaultValue : val;\n val = this.options.getTranslationExportedText(item.context, item.name, item.locString, loc, val);\n row.push(!val && i == 0 ? item.defaultValue : val);\n }\n res.push(row);\n }\n let prefix = settings.translation.exportPrefix;\n if (!prefix) prefix = \"\";\n return (\n prefix +\n unparse(res, {\n quoteChar: '\"',\n escapeChar: '\"',\n delimiter: Translation.csvDelimiter,\n header: true,\n newline: Translation.newLineDelimiter,\n skipEmptyLines: false, //or 'greedy',\n columns: null //or array of strings\n })\n );\n }\n\n public importFromNestedArray(rows: string[][]) {\n let locales = rows.shift().slice(1);\n if (locales[0] === \"default\") {\n locales[0] = \"\";\n }\n let translation = new Translation(this.survey, this.options, false);\n translation.showAllStrings = true;\n let itemsHash = <HashTable<TranslationItem>>{};\n this.fillItemsHash(\"\", translation.root, itemsHash);\n rows.forEach((row) => {\n let name = row.shift().trim();\n if (!name) return;\n let item = itemsHash[name];\n if (!item) return;\n this.updateItemWithStrings(name, item, row, locales);\n });\n this.reset();\n if (this.importFinishedCallback) this.importFinishedCallback();\n }\n\n public exportToSCVFile(fileName: string) {\n if (!window) return;\n var data = this.exportToCSV();\n var blob = new Blob([data], { type: \"text/csv\" });\n if (window.navigator[\"msSaveOrOpenBlob\"]) {\n window.navigator[\"msSaveBlob\"](blob, fileName);\n } else {\n var elem = window.document.createElement(\"a\");\n elem.href = window.URL.createObjectURL(blob);\n elem.download = fileName;\n document.body.appendChild(elem);\n elem.click();\n document.body.removeChild(elem);\n }\n }\n public importFromCSVFile(file: File) {\n var self = this;\n parse(file, {\n complete: function (results, file) {\n self.importFromNestedArray(<string[][]>results.data);\n }\n });\n }\n public mergeLocaleWithDefault() {\n if (!this.hasLocale(this.defaultLocale)) return;\n this.root.mergeLocaleWithDefault(this.defaultLocale);\n this.settingsSurveyValue.setValue(\"selLocales\", []);\n this.settingsSurveyValue.setValue(\"locales\", []);\n this.reset();\n }\n translateItemAfterRender(item: TranslationItem, el: any, locale: string) {\n if (!this.translateItemAfterRenderCallback) return;\n if (Array.isArray(el)) {\n for (var i = 0; i < el.length; i++) {\n if (el[i].tagName == \"TEXTAREA\") {\n el = el[i];\n break;\n }\n }\n }\n this.translateItemAfterRenderCallback(item, el, locale);\n }\n /**\n * Update a translation item with given values\n */\n private updateItemWithStrings(\n name: string,\n item: TranslationItem,\n values: Array<string>,\n locales: Array<string>\n ) {\n for (let i = 0; i < values.length && i < locales.length; i++) {\n let val = values[i].trim();\n if (!val) continue;\n if (this.importItemCallback) {\n val = this.importItemCallback(name, locales[i], val);\n }\n if (!!val) {\n item.values(locales[i]).text = val;\n }\n }\n }\n private fillItemsHash(\n parentName: string,\n group: TranslationGroup,\n itemsHash: HashTable<TranslationItem>\n ) {\n let name = parentName ? parentName + \".\" + group.name : group.name;\n group.locItems.forEach((item) => {\n itemsHash[name + \".\" + item.name] = item;\n });\n group.groups.forEach((group) => this.fillItemsHash(name, group, itemsHash));\n }\n private setLocales(locs: Array<string>) {\n this.settingsSurvey.setValue(\"setLocales\", []);\n this.localesQuestion.value = [];\n for (var i = 0; i < locs.length; i++) {\n this.addLocaleIntoValue(locs[i], false);\n }\n }\n dispose() {\n this.isEmpty = true;\n if (!!this.stringsSurvey) {\n this.stringsSurvey.dispose();\n this.stringsSurvey = undefined;\n }\n if (!!this.stringsHeaderSurvey) {\n this.stringsHeaderSurvey.dispose();\n this.stringsHeaderSurvey = undefined;\n }\n if (!!this.settingsSurveyValue) {\n this.settingsSurveyValue.dispose();\n this.settingsSurveyValue = undefined;\n }\n this.importFinishedCallback = undefined;\n this.availableTranlationsChangedCallback = undefined;\n this.tranlationChangedCallback = undefined;\n }\n}","// extracted by mini-css-extract-plugin","import { Base, SurveyModel, DragDropSurveyElements, DragOrClickHelper } from \"survey-core\";\nimport { IQuestionToolboxItem } from \"../../toolbox\";\nimport { CreatorBase } from \"../../creator-base\";\nexport class ToolboxToolViewModel extends Base {\n private dragOrClickHelper: DragOrClickHelper;\n constructor(\n protected item: IQuestionToolboxItem,\n protected creator: CreatorBase\n ) {\n super();\n this.dragOrClickHelper = new DragOrClickHelper(this.startDragToolboxItem);\n }\n\n public click = (event) => {\n if (!this.allowAdd) return;\n this.creator.clickToolboxItem(this.item.json);\n };\n\n public get allowAdd() {\n return !this.creator.readOnly;\n }\n\n public onPointerDown(pointerDownEvent) {\n if (!this.allowAdd) return;\n if (this.item.id.indexOf(\"dotsItem-id\") === 0) return true; //toolbox responsive popup\n this.dragOrClickHelper.onPointerDown(pointerDownEvent);\n\n this._node = pointerDownEvent.currentTarget;\n this._node.classList.add(\"svc-toolbox__tool--pressed\");\n document.addEventListener(\"pointerup\", this.onPointerUp);\n }\n\n private _node: any\n private onPointerUp = (pointerUpEvent) => {\n this._node.classList.remove(\"svc-toolbox__tool--pressed\");\n this._node = null;\n document.removeEventListener(\"pointerup\", this.onPointerUp);\n }\n\n private startDragToolboxItem = (pointerDownEvent, currentTarget) => {\n var json = this.creator.getJSONForNewElement(this.item.json);\n this.dragDropHelper.startDragToolboxItem(pointerDownEvent, json, this.item.title);\n return true;\n };\n\n private get dragDropHelper(): DragDropSurveyElements {\n return this.creator.dragDropSurveyElements;\n }\n}\n","// extracted by mini-css-extract-plugin","import * as Survey from \"survey-core\";\nimport {\n Base,\n SurveyModel,\n ListModel,\n Question,\n PanelModel,\n PageModel,\n PopupModel,\n property,\n propertyArray,\n IElement,\n Serializer, QuestionFactory,\n JsonObjectProperty,\n ActionContainer,\n AdaptiveActionContainer,\n IAction,\n Action,\n IPanel,\n SurveyElement,\n ItemValue,\n QuestionSelectBase,\n QuestionRowModel,\n LocalizableString,\n ILocalizableString,\n ILocalizableOwner,\n PopupBaseViewModel,\n EventBase\n} from \"survey-core\";\nimport { ISurveyCreatorOptions, settings, ICollectionItemAllowOperations } from \"./creator-settings\";\nimport { editorLocalization } from \"./editorLocalization\";\nimport { SurveyJSON5 } from \"./json5\";\nimport { DragDropSurveyElements, DragDropChoices } from \"survey-core\";\nimport { QuestionConverter } from \"./questionconverter\";\nimport { SurveyTextWorker } from \"./textWorker\";\nimport { QuestionToolbox } from \"./toolbox\";\nimport { getNextItemValue, getNextItemText } from \"./utils/utils\";\nimport { PropertyGridModel } from \"./property-grid\";\nimport { ObjType, SurveyHelper } from \"./survey-helper\";\nimport { ICreatorSelectionOwner } from \"./selection-owner\";\nimport { SelectionHistory } from \"./selection-history\";\n\nimport { TabEmbedPlugin } from \"./components/tabs/embed\";\nimport { TabJsonEditorAcePlugin } from \"./components/tabs/json-editor-ace\";\nimport { TabJsonEditorTextareaPlugin } from \"./components/tabs/json-editor-textarea\";\nimport { TabTestPlugin } from \"./components/tabs/test-plugin\";\nimport { SurveyLogic } from \"./components/tabs/logic\";\nimport { TabTranslationPlugin } from \"./components/tabs/translation-plugin\";\nimport { TabLogicPlugin } from \"./components/tabs/logic-plugin\";\nimport { defaultV2Css, Notifier } from \"survey-core\";\nimport { UndoRedoManager } from \"./plugins/undo-redo/undo-redo-manager\";\nimport { ignoreUndoRedo, UndoRedoPlugin, undoRedoTransaction } from \"./plugins/undo-redo\";\nimport { TabDesignerPlugin } from \"./components/tabs/designer-plugin\";\nimport { UndoRedoController } from \"./plugins/undo-redo/undo-redo-controller\";\nimport { CreatorResponsivityManager } from \"./creator-responsivity-manager\";\nimport { SidebarModel } from \"./components/side-bar/side-bar-model\";\nimport { ICreatorOptions } from \"./creator-options\";\nimport { Translation } from \"../src/components/tabs/translation\";\n\nrequire(\"./components/creator.scss\");\nrequire(\"./components/string-editor.scss\");\nrequire(\"./creator-theme/creator.scss\");\n\nimport { StringEditorConnector } from \"./components/string-editor\";\n\nexport interface IKeyboardShortcut {\n name?: string;\n hotKey: { ctrlKey?: boolean, keyCode: number };\n macOsHotkey?: { shiftKey?: boolean, keyCode: number };\n execute: (context: any) => void;\n}\n\nexport interface ICreatorPlugin {\n activate: () => void;\n update?: () => void;\n deactivate?: () => boolean;\n dispose?: () => void;\n onDesignerSurveyPropertyChanged?: (obj: Base, propName: string) => void;\n model: Base;\n}\n//Obsolete\nexport class CreatorAction extends Action {\n}\n\nexport interface ITabbedMenuItem extends IAction {\n componentContent: string;\n renderTab?: () => any;\n}\nexport class TabbedMenuItem extends Action implements ITabbedMenuItem {\n constructor(item: ITabbedMenuItem) {\n super(item);\n }\n componentContent: string;\n renderTab?: () => any;\n}\nexport class TabbedMenuContainer extends AdaptiveActionContainer<TabbedMenuItem> {\n constructor() {\n super();\n this.dotsItem.popupModel.horizontalPosition = \"center\";\n this.minVisibleItemsCount = 1;\n }\n}\n\nexport class ToolbarActionContainer extends ActionContainer {\n constructor(private creator: CreatorBase) {\n super();\n }\n protected getRenderedActions(): Array<Action> {\n let actions = this.actions;\n const expandAction = this.creator.sidebar.getExpandAction();\n var index = actions.indexOf(expandAction);\n if (index !== -1) {\n actions.splice(index, 1);\n actions.push(expandAction);\n }\n return actions;\n }\n}\n\nexport type toolboxLocationType = \"left\" | \"right\" | \"sidebar\";\n\nexport class CreatorEvent extends EventBase<CreatorBase, any> { }\n\n/**\n * Base class for Survey Creator.\n */\nexport class CreatorBase extends Base\n implements ISurveyCreatorOptions, ICreatorSelectionOwner, ILocalizableOwner {\n //ILocalizableOwner\n public getMarkdownHtml(text: string, name: string): string { return null; }\n public getRenderer(name: string): string { return null; }\n public getRendererContext(locStr: LocalizableString): any { return locStr; }\n public getProcessedText(text: string): string { return text; }\n public getLocale(): string { return this.locale; }\n /**\n * Specifies whether to display the Designer tab.\n *\n * Default value: `true`\n */\n @property({ defaultValue: true }) showDesignerTab: boolean;\n /**\n * Specifies whether to display the JSON Editor tab.\n *\n * Default value: `true`\n */\n @property({ defaultValue: true }) showJSONEditorTab: boolean;\n /**\n * Obsolete. Please use showPreviewTab property\n * @see showPreviewTab\n */\n @property({ defaultValue: true }) showTestSurveyTab: boolean;\n /**\n * Specifies whether to display the Preview tab.\n *\n * Default value: `true`\n */\n public get showPreviewTab(): boolean { return this.showTestSurveyTab; }\n public set showPreviewTab(val: boolean) { this.showTestSurveyTab = val; }\n /**\n * Specifies whether to display the Embed Survey tab.\n *\n * Default value: `false`\n */\n @property({ defaultValue: false }) showEmbeddedSurveyTab: boolean;\n /**\n * Specifies whether to display the Translation tab.\n *\n * Default value: `false`\n */\n @property({ defaultValue: false }) showTranslationTab: boolean;\n /**\n * Specifies whether to display the Logic tab.\n *\n * Default value: `false`\n */\n @property({ defaultValue: false }) showLogicTab: boolean;\n @property({ defaultValue: false }) useTableViewInLogicTab: boolean;\n /**\n * Set delay for page hover\n */\n @property({ defaultValue: 200 }) pageHoverDelay: number;\n /**\n * You need to set this property to true if you want to inplace edit item values instead of texts.\n */\n @property({ defaultValue: false }) inplaceEditForValues: boolean;\n /**\n * Obsolete. Use the [`showSurveyTitle`](https://surveyjs.io/Documentation/Survey-Creator?id=surveycreator#showSurveyTitle) property instead.\n */\n get allowEditSurveyTitle(): boolean {\n return this.getPropertyValue(\"allowEditSurveyTitle\", true);\n }\n set allowEditSurveyTitle(val: boolean) {\n this.setPropertyVisibility(\"survey\", val, \"title\", \"description\", \"logo\", \"showTitle\", \"logoWidth\", \"logoHeight\");\n this.setPropertyValue(\"allowEditSurveyTitle\", val);\n this.designerPropertyGrid && this.designerPropertyGrid.refresh();\n }\n /**\n * Specifies whether users can see and edit the survey title and related survey properties.\n *\n * Default value: `true`\n */\n get showSurveyTitle(): boolean {\n return this.allowEditSurveyTitle;\n }\n set showSurveyTitle(val: boolean) {\n this.allowEditSurveyTitle = val;\n }\n /**\n * Removes the Free Trial bar.\n *\n * Default value: `false`\n *\n * > You can enable this property only if you have a Survey Creator commercial license. It is illegal to enable this property without a license.\n */\n @property({ defaultValue: false }) haveCommercialLicense: boolean;\n public get licenseText(): string {\n return this.getLocString(\"survey.license\");\n }\n /**\n * Specifies whether to call the [saveSurveyFunc](https://surveyjs.io/Documentation/Survey-Creator?id=surveycreator#saveSurveyFunc) each time survey settings are changed.\n *\n * Default value: `false`\n */\n @property({ defaultValue: false }) isAutoSave: boolean;\n @property() showOptions: boolean;\n @property({ defaultValue: false }) showSearch: boolean;\n @property({ defaultValue: true }) generateValidJSON: boolean;\n @property({ defaultValue: \"\" }) currentAddQuestionType: string;\n /**\n * Specifies the orientation of the selected device in the Preview tab.\n *\n * Possible values:\n * - `\"landscape\"` (default)\n * - `\"portrait\"`\n */\n @property({ defaultValue: \"landscape\" }) previewOrientation: \"landscape\" | \"portrait\";\n private isRTLValue: boolean = false;\n private alwaySaveTextInPropertyEditorsValue: boolean = false;\n private toolbarValue: ActionContainer;\n private responsivityManager: CreatorResponsivityManager;\n footerToolbar: ActionContainer;\n\n private changePageModifications(allow = false) {\n this.setPropertyVisibility(\"survey\", allow, \"pages\");\n this.setPropertyVisibility(\"question\", allow, \"page\");\n this.setPropertyVisibility(\"panel\", allow, \"page\");\n this.showJSONEditorTab = (this.options.showJSONEditorTab === true);\n }\n\n private pageEditModeValue: \"standard\" | \"single\" | \"bypage\" = \"standard\";\n /**\n * Contains the value of the [`pageEditMode`](https://surveyjs.io/Documentation/Survey-Creator?id=ICreatorOptions#pageEditMode) property specified in the constructor.\n */\n public get pageEditMode(): \"standard\" | \"single\" | \"bypage\" {\n return this.pageEditModeValue;\n }\n public set pageEditMode(val: \"standard\" | \"single\" | \"bypage\") {\n this.pageEditModeValue = val;\n const allowModifyPages = this.pageEditModeValue !== \"single\";\n this.changePageModifications(allowModifyPages);\n Survey.settings.allowShowEmptyTitleInDesignMode = allowModifyPages;\n Survey.settings.allowShowEmptyDescriptionInDesignMode = allowModifyPages;\n if (this.pageEditModeValue === \"bypage\") {\n this.showPageNavigator = true;\n }\n }\n\n @property() surveyValue: SurveyModel;\n\n public get toolbarItems(): Array<Action> {\n return this.toolbarValue.actions;\n }\n public get toolbar(): ActionContainer {\n return this.toolbarValue;\n }\n public dragDropSurveyElements: DragDropSurveyElements;\n public dragDropChoices: DragDropChoices;\n\n private selectedElementValue: Base;\n private newQuestions: Array<any> = [];\n private newPanels: Array<any> = [];\n private newQuestionChangedNames: {};\n private selectionHistoryControllerValue: SelectionHistory;\n\n private saveSurveyFuncValue: (\n no: number,\n onSaveCallback: (no: number, isSuccess: boolean) => void\n ) => void;\n\n @property() viewType: string;\n\n /**\n * Returns the current show view name. The possible returns values are:\n * \"designer\", \"editor\", \"test\", \"embed\", \"logic\" and \"translation\".\n * @see showDesigner\n * @see showPreview\n * @see showJsonEditor\n * @see showLogicEditor\n * @see showTranslationEditor\n * @see showEmbedEditor\n */\n public get showingViewName(): string {\n return this.activeTab;\n }\n public get isDesignerShowing(): boolean {\n return this.activeTab === \"designer\";\n }\n public showDesigner() {\n this.activeTab = \"designer\";\n }\n\n public get isTestSurveyShowing(): boolean {\n return this.isPreviewShowing;\n }\n /**\n * Return true if Preview tab is currently active\n */\n public get isPreviewShowing(): boolean {\n return this.activeTab === \"test\";\n }\n public showTestSurvey() {\n this.showPreview();\n }\n /**\n * Show Preview tab\n */\n public showPreview() {\n this.activeTab = \"test\";\n }\n\n protected plugins: { [name: string]: ICreatorPlugin } = {};\n\n public addPluginTab(\n name: string,\n plugin: ICreatorPlugin,\n title?: string,\n componentContent?: string,\n index?: number\n ) {\n const locStrName = !title ? \"ed.\" + name : (title.indexOf(\"ed.\") == 0 ? title : \"\");\n if (!!locStrName) {\n title = undefined;\n }\n const tab: TabbedMenuItem = new TabbedMenuItem({\n id: name,\n locTitleName: locStrName,\n title: title,\n componentContent: componentContent ? componentContent : \"svc-tab-\" + name,\n data: plugin,\n action: () => { this.makeNewViewActive(name); },\n active: this.viewType === name,\n disableHide: this.viewType === name\n });\n if (index >= 0 && index < this.tabs.length) {\n this.tabs.splice(index, 0, tab);\n } else {\n this.tabs.push(tab);\n }\n this.addPlugin(name, plugin);\n }\n public addPlugin(name: string, plugin: ICreatorPlugin) {\n this.plugins[name] = plugin;\n }\n public getPlugin<P extends ICreatorPlugin = ICreatorPlugin>(name: string): P {\n return this.plugins[name] as P;\n }\n\n /**\n * The event is called on deleting an element (question/panel/page) from the survey. Typically, when a user click the delete from the element menu.\n *- sender the survey creator object that fires the event\n *- options.element an instance of the deleting element\n *- options.elementType the type of the element: 'question', 'panel' or 'page'.\n *- options.allowing set it to false to cancel the element deleting\n */\n public onElementDeleting: CreatorEvent = new CreatorEvent();\n\n /**\n * The event is called on setting a readOnly property of the property editor. By default the property.readOnly property is used.\n * You may changed it and make the property editor read only or enabled for a particular object.\n *- sender the survey creator object that fires the event\n *- options.obj the survey object, Survey, Page, Panel or Question\n *- options.property the object property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties.\n *- options.readOnly a boolean value. It has value equals to options.readOnly property by default. You may change it.\n *- options.parentObj the parent object. It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is a question (dropdown, radigroup, checkbox, matrices and so on).\n *- options.parentProperty the parent property (Survey.JsonObjectProperty object). It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is choices, columns, rows, triggers and so on.\n */\n public onGetPropertyReadOnly: CreatorEvent = new CreatorEvent();\n\n /**\n * The event is fired when the survey creator creates a survey object (Survey.Survey).\n *- sender the survey creator object that fires the event\n *- options.survey the survey object showing in the creator.\n *- options.reason indicates what component of the creator requests the survey. There are several reason types: \"designer\" - survey for designer survey, \"test\" - survey for \"Preview\" tab and \"conditionEditor\", \"defaultValueEditor\", \"restfulEditor\" - surveys for different property editors.\n */\n public onSurveyInstanceCreated: CreatorEvent = new CreatorEvent();\n\n /**\n * An event that is raised when Survey Creator obtains a survey element name to display it in the UI.\n * \n * Handle this event to replace survey element names in the UI with custom display texts.\n * If you only want to replace the names with survey element titles, enable the [`showObjectTitles`](https://surveyjs.io/survey-creator/documentation/surveycreator#showObjectTitles) property instead of handling this event.\n * \n * The event handler accepts the following arguments:\n * \n * - `sender`- A Survey Creator instance that raised the event.\n * - `options.obj` - The instance of a survey element (survey, page, question, or panel) whose name has been requested.\n * - `options.area` - A Survey Creator UI element that requests the display name.\n * - `\"page-selector\"` - Page selector on the design surface\n * - `\"condition-editor\"` - Condition pop-up window or drop-down menus that allow users to select questions in the Logic tab\n * - `\"logic-tab:question-filter\"` - Question filter in the Logic tab\n * - `\"logic-tab:question-selector\"` - Question selector on editing actions in the Logic tab\n * - `\"preview-tab:page-list\"` - Page list in the Preview tab\n * - `\"preview-tab:selected-page\"` - Selected page name in the Preview tab\n * - `\"property-grid:property-editor\"` - Property editors in the Property Grid\n * - `\"property-grid-header:element-list\"` - Survey element list in the header of the Property Grid\n * - `\"property-grid-header:selected-element\"` - Selected survey element in the header of the Property Grid\n * - `\"translation-tab\"` - Translation tab\n * - `options.displayName` - Modify this property to set a custom display text for the survey element.\n * - `options.reason` - Obsolete. Use the `options.area` property instead.\n * - `\"condition\"` - Use the `\"condition-editor\"` value of `options.area` instead.\n * - `\"survey-tester\"` - Use the `\"preview-tab:page-list\"` value of `options.area` instead.\n * - `\"survey-tester-selected\"` - Use the `\"preview-tab:selected-page\"` value of `options.area` instead.\n * - `\"survey-translation\"` - Use the `\"translation-tab\"` value of `options.area` instead.\n * - `\"property-editor\"` - Use the `\"property-grid:property-editor\"` value of `options.area` instead.\n * - `\"property-grid\"` - Use the `\"property-grid-header:element-list\"` value of `options.area` instead.\n * - `\"property-grid-title\"` - Use the `\"property-grid-header:selected-element\"` value of `options.area` instead.\n */\n public onGetObjectDisplayName: CreatorEvent = new CreatorEvent();\n\n /**\n * This event is raised after a user has edited a text value on the design surface. This value may include HTML markup. You can handle the `onHtmlToMarkdown` event to convert the HTML markup to Markdown.\n *\n * The event handler accepts the following arguments:\n *\n * - `sender` - A Survey Creator instance that raised the event.\n * - `options.element` - The instance of a survey element (survey, page, panel, question) that the user configures.\n * - `options.name` - The name of a property whose value has been edited.\n * - `options.html` - HTML content. Pass this field's value to an HTML-to-Markdown converter.\n * - `options.text` - A text string that may contain Markdown. Assign the result of the HTML-to-Markdown conversion to this field.\n */\n public onHtmlToMarkdown: CreatorEvent = new CreatorEvent();\n\n /**\n * Use this event to disable user interactions with a question or panel on the design surface.\n *\n * The event handler accepts the following arguments:\n *\n * - `sender`- A Survey Creator instance that raised the event.\n * - `options.obj` - A survey element instance (question or panel) for which you can disable user interactions.\n * - `options.allowAddToToolbox` - Allows users to save the current survey element configuration in the Toolbox.\n * - `options.allowChangeRequired` - Allows users to make the survey element required.\n * - `options.allowChangeType` - Allows users to change the survey element type.\n * - `options.allowCopy` - Allows users to duplicate the survey element.\n * - `options.allowDelete` - Allows users to delete the survey element.\n * - `options.allowDragging` - Allows users to drag and drop the survey element.\n * - `options.allowEdit` - Allows users to edit survey element properties on the design surface. If you disable this property, users can edit the properties only in the Property Grid.\n *\n * To disable a user interaction, set the correponding `allow...` property to `false`.\n */\n public onElementAllowOperations: CreatorEvent = new CreatorEvent();\n\n /**\n * Use this event to add/remove/modify the element (question/panel) menu items.\n *- sender the survey creator object that fires the event\n *- options.obj the survey object which property is edited in the Property Editor.\n *- options.items the list of menu items. It has two required fields: text and onClick: function(obj: Survey.Base) {} and optional name field.\n * @see onElementAllowOperations\n */\n public onDefineElementMenuItems: CreatorEvent = new CreatorEvent();\n /**\n * The event is called before showing a property in the Properties Grid or in the Question Editor.\n *- sender the survey creator object that fires the event\n *- options.obj the survey object, Survey, Page, Panel or Question\n *- options.property the object property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties.\n *- options.canShow a boolean value. It is true by default. Set it false to hide the property from the Properties Grid and in the Question Editor.\n *- options.parentObj the parent object. It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is a question (dropdown, radigroup, checkbox, matrices and so on).\n *- options.parentProperty the parent property (Survey.JsonObjectProperty object). It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is choices, columns, rows, triggers and so on.\n *\n * [Example: Hide a category in the Properties Grid](https://surveyjs.io/Examples/Survey-Creator?id=hidecategoryinpropertiesgrid)\n */\n public onShowingProperty: CreatorEvent = new CreatorEvent();\n /**\n * @Deprecated Obsolete, please use onShowingProperty event.\n * The event is called before showing a property in the Property Grid or in Question Editor.\n *- sender the survey creator object that fires the event\n *- options.obj the survey object, Survey, Page, Panel or Question\n *- options.property the object property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties.\n *- options.canShow a boolean value. It is true by default. Set it false to hide the property from the Property Grid or in Question Editor\n *- options.parentObj the parent object. It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is a question (dropdown, radigroup, checkbox, matrices and so on).\n *- options.parentProperty the parent property (Survey.JsonObjectProperty object). It is null for non-nested properties. It is not null for itemvalue or column objects. The parent object is choices, columns, rows, triggers and so on.\n */\n public onCanShowProperty: CreatorEvent = this.onShowingProperty;\n /**\n * The event is called after a survey that represents the Property Grid is created and all its questions (property editors) are setup.\n * You can use this event to modify this survey to change the property grid behavior\n *- options.obj the survey object that is currently editing in the property grid\n *- options.survey the property grid survey\n */\n public onPropertyGridSurveyCreated: CreatorEvent = new CreatorEvent();\n /**\n * The event is called after a property editor (in fact a survey question) has been created and all it's properties have been assign.\n * You can use this event to modify the property editor properties or set event handlers to customize it's behavior\n *- options.obj the survey object that is currently editing in the property grid\n *- options.property the property that the current property editor is editing\n *- options.editor the property editor. In fact it is a survey question. We are using a heavily customizable survey as a property grid in Creator V2. It means that every property editor is a question.\n */\n public onPropertyEditorCreated: CreatorEvent = new CreatorEvent();\n /**\n * The event is called after a property editor setups its title actions.\n * You can use this event to modify the property editor title actions\n *- options.obj the survey object that is currently editing in the property grid\n *- options.property the property that the current property editor is editing\n *- options.editor the property editor. In fact it is a survey question. We are using a heavily customizable survey as a property grid in Creator V2. It means that every property editor is a question.\n *- options.titleActions the list of title actions.\n */\n public onPropertyEditorUpdateTitleActions: CreatorEvent = new CreatorEvent();\n /**\n * An event that is raised before Survey Creator displays a pop-up window called from the Property Grid. This window allows users to edit choices, conditions, and so on.\n *\n * Use this event to customize the pop-up window, for example, add custom action buttons.\n *\n * Parameters:\n *\n * - `sender` - A Survey Creator instance that raised the event.\n * - `options.obj` - An instance of a survey element (question or panel) that users are configuring in the Property Grid.\n * - `options.property`- A `JsonObjectProperty` object with metadata about the property being edited.\n * - `options.editor` - A property editor. It is an object of the [`Question`](https://surveyjs.io/form-library/documentation/question) type because the Property Grid is [built upon a regular survey](https://surveyjs.io/survey-creator/documentation/creator-v2-whats-new#survey-creator-ui-elements-are-surveys).\n * - `options.popupEditor` - An editor inside the pop-up window.\n * - `options.popupModel` - A `PopupBaseViewModel` object that describes the pop-up window model. Use `options.popupModel.footerToolbar` to access the actions at the bottom of the window.\n */\n public onPropertyGridShowModal: CreatorEvent = new CreatorEvent();\n /**\n * The event is called before rendering a delete button in the Property Grid or in Question Editor.\n * @Deprecated Obsolete, please use onCollectionItemAllowOperations\n *- sender the survey creator object that fires the event\n *- options.obj the survey Question\n *- options.item the object property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties\n *- options.canDelete a boolean value. It is true by default. Set it false to remove delete button from the Property Grid or in Question Editor\n * @see onCollectionItemAllowOperations\n */\n public onCanDeleteItem: CreatorEvent = new CreatorEvent();\n /**\n * The event is called on deleting a collection item from the Property Editor. For example: column in columns editor or item in choices and so on.\n * @Deprecated Obsolete, please use onCollectionItemAllowOperations\n *- sender the survey creator object that fires the event\n *- options.obj the survey object: Question, Panel, Page or Survey\n *- options.property the collection property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties\n *- options.propertyName the collection property name\n *- options.collection the editing collection where deleting item is located. It is can be columns in the matrices or choices in dropdown question and so on.\n *- options.item the collection item that we are going to delete\n *- options.allowDelete a boolean value. It is true by default. Set it false to abondome the element removing from the collection\n * @see onCollectionItemAllowOperations\n */\n public onCollectionItemDeleting: CreatorEvent = new CreatorEvent();\n /**\n * The event is called before rendering a collection item in a property editor. For example: a column in a column editor, or an item in Choices and so on.\n * Use this event to prevent a collection item from being edited or removed from a collection. \n *- sender the survey creator object that fires the event\n *- options.obj the survey object: Question, Panel, Page or Survey\n *- options.property the collection property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties\n *- options.propertyName the collection property name\n *- options.collection a collection where a target item is located. It is can be Columns in Matrices or Choices in Dropdown question and so on.\n *- options.item a target collection item\n *- options.allowDelete a boolean value. It is `true` by default. Set it false to prevent an item from being removed from the collection\n *- options.allowEdit a boolean value. It is `true` by default. Set it `false` to disable editing.\n */\n public onCollectionItemAllowOperations: CreatorEvent = new CreatorEvent();\n /**\n * The event is called on adding a new Survey.ItemValue object. It uses as an element in choices array in Radiogroup, checkbox and dropdown questions or Matrix columns and rows properties.\n * Use this event, to set ItemValue.value and ItemValue.text properties by default or set a value to the custom property.\n *- sender the survey creator object that fires the event\n *- options.obj the object that contains the itemsValues array, for example selector, rating and single choice matrix questions.\n *- options.propertyName the object property Name. It can be \"choices\" for selector questions or rateValues for rating question or columns/rows for single choice matrix.\n *- options.newItem a new created Survey.ItemValue object.\n *- options.itemValues an editing Survey.ItemValue array. newItem object is not added yet into this array.\n */\n public onItemValueAdded: CreatorEvent = new CreatorEvent();\n /**\n * The event is called when a user adds a new column into MatrixDropdown or MatrixDynamic questions. Use it to set some properties of Survey.MatrixDropdownColumn by default, for example name or a custom property.\n *- sender the survey creator object that fires the event\n *- options.matrix a matrix question where column is located, matrix.columns.\n *- options.newColumn a new created Survey.MatrixDropdownColumn object.\n *- options.columns editable columns objects. They can be different from options.matrix.columns. options.columns and options.matrix.columns are equal after user press Apply or Cancel and options.columns will be set to options.matrix.columns or reset to initial state.\n */\n public onMatrixColumnAdded: CreatorEvent = new CreatorEvent();\n /**\n * Use this event to control Property Editors UI.\n *- sender the survey creator object that fires the event\n *- options.obj the survey object which property is edited in the Property Editor.\n *- options.propertyName the name of the edited property.\n *- options.editorOptions options that can be changed.\n *- options.editorOptions.allowAddRemoveItems a boolean property, true by default. Set it false to disable add/remove items in array properties. For example 'choices', 'columns', 'rows'.\n *- options.editorOptions.allowRemoveAllItems a boolean property, true by default. Set it false to disable remove all items in array properties. For example 'choices', 'columns', 'rows'.\n *- options.editorOptions.allowBatchEdit a boolean property, true by default. Set it false to hide the \"Edit\" button for the \"choices\" property.\n *- options.editorOptions.itemsEntryType a string property, 'form' by default. Set it 'fast' to show \"Manual Entry\" tab for \"choices\" property by default.\n */\n public onSetPropertyEditorOptions: CreatorEvent = new CreatorEvent();\n /**\n * The event is called on generation a new name for a new created element.\n *- sender the survey creator object that fires the event\n *- options.element a new created survey element. It can be question, panel or page\n *- options.name a new suggested name, that is unique for the current survey. You can suggest your own name. If it is unique, creator will assign it to the element.\n *- options.isUnique a boolean property, set this property to false, if you want to ask Creator to generate another name\n */\n public onGenerateNewName: CreatorEvent = new CreatorEvent();\n /**\n * Use this event to show a custom error in the Question Editor on pressing Apply or OK buttons, if the values are not set correctly. The error will be displayed under the property editor.\n *- sender the survey creator object that fires the event\n *- options.obj the survey object which property is edited in the Property Editor.\n *- options.propertyName the name of the edited property.\n *- options.value the property value.\n *- options.error the error you want to display. Set the empty string (the default value) or null if there is no errors.\n * @see onPropertyValueChanging\n */\n public onPropertyValidationCustomError: CreatorEvent = new CreatorEvent();\n /**\n * An event that is raised each time a user modifies a survey object property. Use this event to validate or correct a property value while the user enters it.\n *\n * The event handler accepts the following arguments:\n *\n * - `sender`- A Survey Creator instance that raised the event.\n * - `options.obj` - A survey object instance (question or panel) whose property is being edited.\n * - `options.propertyName` - The name of the property.\n * - `options.value` - An old property value.\n * - `options.newValue` - A new property value. Specify this field if you want to override the entered value.\n * @see onPropertyValidationCustomError\n * @see onSurveyPropertyValueChanged\n */\n public onPropertyValueChanging: CreatorEvent = new CreatorEvent();\n /**\n * An event that is raised after a property in a survey object has changed.\n *\n * - `sender`- A Survey Creator instance that raised the event.\n * - `options.obj` - A survey object instance (question or panel) whose property has changed.\n * - `options.propertyName` - The name of the property.\n * - `options.value` - A new property value.\n * @see onPropertyValidationCustomError\n * @see onPropertyValueChanging\n */\n public onSurveyPropertyValueChanged: CreatorEvent = new CreatorEvent();\n /**\n * Use this event to modify the list (name and titles) of the questions available in a condition editor.\n *- sender the survey creator object that fires the event\n *- options.obj the survey object which property is edited in the Property Editor.\n *- options.propertyName the name of the edited property.\n *- options.editor the instance of Property Editor.\n *- options.list the list of the questions available for condition\n *- options.sortOrder \"asc\" (default) | \"none\". Change it to \"none\", if you don't want to sort your condition list\n */\n public onConditionQuestionsGetList: CreatorEvent = new CreatorEvent();\n /**\n * Use this event to modify the title in a condition editor. The title is changing during editing. In case of empty or incorrect expression it tells that expression is incorrect\n *- sender the survey creator object that fires the event.\n *- options.expression the current expression. If the expression is empty or incorrect then the value is empty.\n *- options.title the default value of the title. You can change the default value.\n */\n public onConditionGetTitle: CreatorEvent = new CreatorEvent();\n /**\n * Use this event to modify the display text of a logic item in the Logic tab.\n * \n * The event handler accepts the following arguments:\n * \n * - `sender` - A Survey Creator instance that raised the event.\n * - `options.expression` - A logical expression associated with the logic item. \n * - `options.expressionText` - The same expression in a user-friendly format. It may contain question titles instead of question names.\n * - `options.logicItem` - A logic item object. Contains an array of actions and other properties.\n * - `options.text` - The expression and actions in a user-friendly format. Redefine this property if you want to change the display text.\n */\n public onLogicItemDisplayText: CreatorEvent = new CreatorEvent();\n /**\n * The event is called when a survey is changed in the designer. A new page/question/page is added or existing is removed, a property is changed and so on.\n *- sender the survey creator object that fires the event\n * options object contains the information about certain modifications\n *- options.type contains string constant describing certain modification\n * Available values:\n *\n *- options.type: \"ADDED_FROM_TOOLBOX\"\n *- options.question: newly added question\n *\n *- options.type: \"PAGE_ADDED\"\n *- options.newValue: newly created page\n *\n *- options.type: \"PAGE_MOVED\"\n *- options.page: page has been moved\n *- options.indexFrom: pevious index\n *- options.indexTo: new index\n *\n *- options.type: \"QUESTION_CONVERTED\"\n *- options.className: the converted class name\n *- options.oldValue: pevious object\n *- options.newValue: the new object, converted from oldVale to the given class name\n *\n *- options.type: \"QUESTION_CHANGED_BY_EDITOR\"\n *- options.question: question has been edited in the popup question editor\n *\n *- options.type: \"PROPERTY_CHANGED\"\n *- options.name: the name of the property has been changed\n *- options.target: the object containing the changed property\n *- options.oldValue: the previous value of the changed property\n *- options.newValue: the new value of the changed property\n *\n *- options.type: \"OBJECT_DELETED\"\n *- options.target: deleted object\n *\n *- options.type: \"VIEW_TYPE_CHANGED\"\n *- options.newType: new type of the creator view: editor or designer\n *\n *- options.type: \"DO_DROP\"\n *- options.page: the page of the drap/drop operation\n *- options.source: the source dragged object\n *- options.target: the drop target\n *- options.newElement: a new element. It is defined if a user drops question or panel from the toolbox\n *\n *- options.type: \"TRANSLATIONS_CHANGED\"\n *- options.type: \"JSON_EDITOR\"\n */\n public onModified: CreatorEvent = new CreatorEvent();\n /**\n * The event is called on adding a new question into the survey. Typically, when a user dropped a Question from the Question Toolbox into designer Survey area.\n *- sender the survey creator object that fires the event\n *- options.question a new added survey question. Survey.Question object\n *- options.page the survey Page object where question has been added.\n *- options.reason how question has been added via UI: ADDED_FROM_TOOLBOX, ADDED_FROM_PAGEBUTTON, ELEMENT_COPIED.\n */\n public onQuestionAdded: CreatorEvent = new CreatorEvent();\n /**\n * The event is called on adding a new panel into the survey. Typically, when a user dropped a Panel from the Question Toolbox into designer Survey area.\n *- sender the survey creator object that fires the event\n *- options.panel a new added survey panel. Survey.Panel object\n *- options.page the survey Page object where question has been added.\n */\n public onPanelAdded: CreatorEvent = new CreatorEvent();\n /**\n * The event is called on adding a new page into the survey.\n *- sender the survey creator object that fires the event\n *- options.page the new survey Page object.\n */\n public onPageAdded: CreatorEvent = new CreatorEvent();\n /**\n * The event is fired when the survey creator is initialized and a survey object (Survey.Survey) is created.\n *- sender the survey creator object that fires the event\n *- options.survey the survey object showing in the creator.\n */\n public onDesignerSurveyCreated: CreatorEvent = new CreatorEvent();\n /**\n * The event is fired when the survey creator creates survey in Preview tab for testing.\n *- sender the survey creator object that fires the event\n *- options.survey the survey object showing in the \"Preview\" tab.\n */\n public onPreviewSurveyCreated: CreatorEvent = new CreatorEvent();\n /**\n * Obsolete. Please use onPreviewSurveyCreated event.\n * @see onPreviewSurveyCreated\n */\n public onTestSurveyCreated: CreatorEvent = this.onPreviewSurveyCreated;\n /**\n * The event is called in case of UI notifications. By default all notifications are done via built-in alert () function.\n * In case of any subscriptions to this event all notifications will be redirected into the event handler.\n *- options.message is a message to show.\n */\n public onNotify: CreatorEvent = new CreatorEvent();\n /**\n * The event is called on changing the selected element. You may change the new selected element by changing the property options.newSelectedElement to your own\n *- options.newSelectedElement the element that is going to be selected in the survey desiger: question, panel, page or survey.\n */\n public onSelectedElementChanging: CreatorEvent = new CreatorEvent();\n /**\n * The event is called after the selected element is changed.\n *- options.newSelectedElement the new selected element in the survey desiger: question, panel, page or survey.\n */\n public onSelectedElementChanged: CreatorEvent = new CreatorEvent();\n /**\n * The event is fired then one need to choose files.\n * \n * - `sender` - the survey creator object that fires the event\n * - `options.input` - file input HTML element\n * - `options.callback` - need to be called after files has been chosen\n * @see uploadFiles\n */\n public onOpenFileChooser: CreatorEvent = new CreatorEvent();\n /**\n * The event is fired on uploading the files.\n * \n * - `sender` - the survey creator object that fires the event\n * - `options.files` - the Javascript File objects array\n * - `options.callback(status, imageLink)` - called on upload complete\n * @see uploadFiles\n */\n public onUploadFile: CreatorEvent = new CreatorEvent();\n /**\n * Use this event to modify the list of the strings available in the Translation tab.\n *\n * The event handler accepts the following arguments:\n *\n * - `sender` - A Survey Creator instance that raised the event.\n * - `options.obj` - A survey object instance (survey, page, panel, question) whose string translations are being edited in the Translation tab.\n * - `options.propertyName` - The name of a property being translated.\n * - `options.visible` - A Boolean value that specifies the property visibility. Set it to `false` to hide the property.\n */\n public onTranslationStringVisibility: CreatorEvent = new CreatorEvent();\n /**\n * Use this event to define is the locale initially selected (default value) and ready for translaion or it is unselected.\n *\n * The event handler accepts the following arguments:\n *\n * - `sender` - A Survey Creator instance that raised the event.\n * - `options.locale` - the locale name, like 'en', 'de' and so on.\n * - `options.isSelected` - it is true by default. Set it to false to make the translation unselected.\n */\n public onTranslationLocaleInitiallySelected: CreatorEvent = new CreatorEvent();\n /**\n * Use this event to modify the imported localizable text. To block importing a particular localization text, set the options.text into undefined.\n *\n * The event handler accepts the following arguments:\n *\n * - `sender` - A Survey Creator instance that raised the event.\n * - `options.locale` - the locale name, like 'en', 'de' and so on.\n * - `options.name` - The full name of the localizable string, it can be: \"survey.page1.question2.title\"\n * - `options.text` - The imported text for the locale for this item. Set it to undefined or empty string to block importing for this item\n */\n public onTranslationImportItem: CreatorEvent = new CreatorEvent();\n /**\n * The event is called when the translation from csv file is imported.\n * @see translation\n * @see showTranslationTab\n */\n public onTranslationImported: CreatorEvent = new CreatorEvent();\n /**\n * Use this event to modify a translated string before it is exported to CSV.\n *\n * The event handler accepts the following arguments:\n *\n * - `sender` - A Survey Creator instance that raised the event.\n * - `options.obj` - A survey object instance (survey, page, panel, question) whose string translations are being exported to CSV.\n * - `options.locale` - The current locale identifier (`\"en\"`, `\"de\"`, etc.). Contains an empty string if the default locale is used.\n * - `options.name` - A full name of the translated string. It is composed of names of all parent elements, for example: `\"mySurvey.page1.question2.title\"`.\n * - `options.locString` - A `LocalizableString` instance. Call the `options.locString.getLocaleText(locale)` method if you need to get a text string for a specific locale.\n * - `options.text` - A text string to be exported. The string is taken from the current locale. Redefine this property if you want to export a different string.\n */\n public onTranslationExportItem: CreatorEvent = new CreatorEvent();\n\n /**\n * An event that is raised before a string translation is changed. Use this event to override a new translation value.\n * \n * Parameters:\n *\n * - `sender`: `CreatorBase`\\\n * A Survey Creator instance that raised the event.\n * - `options.obj`: `any`\\\n * A survey object instance (survey, page, panel, question) whose string translation is being changed.\n * - `options.locale`: `String`\\\n * The current locale identifier (`\"en\"`, `\"de\"`, etc.). Contains an empty string if the default locale is used.\n * - `options.locString`: `LocalizableString`\\\n * An object that you can use to manipulate a localization string. Call the `options.locString.getLocaleText(locale)` method if you need to get a text string for a specific locale.\n * - `options.newText`: `String`\\\n * A new value for the string translation.\n * \n * Refer to the following help topics for more information on localization:\n * \n * - [Localization & Globalization in SurveyJS Form Library](https://surveyjs.io/form-library/documentation/survey-localization)\n * - [Localization & Globalization in Survey Creator](https://surveyjs.io/survey-creator/documentation/localization)\n */\n public onTranslationItemChanging: CreatorEvent = new CreatorEvent();\n\n /**\n * Use this event to control drag&drop operations.\n *- sender the survey creator object that fires the event.\n *- options.survey the editing survey object.\n *- options.allow set it to false to disable dragging.\n *- options.target a target element that is dragging.\n *- options.source a source element. It can be null, if it is a new element, dragging from toolbox.\n *- options.parent a page or panel where target element is dragging.\n *- options.insertBefore an element before the target element is dragging. It can be null if parent container (page or panel) is empty or dragging an element under the last element of the container.\n *- options.insertAfter an element after the target element is dragging. It can be null if parent container (page or panel) is empty or dragging element to the top of the parent container.\n */\n public onDragDropAllow: CreatorEvent = new CreatorEvent();\n\n /**\n * This callback is used internally for providing survey JSON text.\n */\n public getSurveyJSONTextCallback: () => { text: string, isModified: boolean };\n /**\n * This callback is used internally for setting survey JSON text.\n */\n public setSurveyJSONTextCallback: (text: string) => void;\n\n // /**\n // * You need to set this property to true if you want to use tabs instead of accordion in the popup element's editor.\n // */\n // public useTabsInElementEditor = false;\n\n /**\n * Limits the number of items in a logical expression.\n *\n * Default value: -1 (unlimited)\n */\n public maxLogicItemsInCondition: number = -1;\n\n /**\n * Specifies whether UI elements display survey, page, and question titles instead of their names.\n *\n * Default value: `false`\n *\n * @see onGetObjectDisplayName\n */\n public showObjectTitles = false;\n\n /**\n * Limits the number of visible choices. Users can click \"Show more\" to view hidden choices.\n * \n * Set this property to -1 if you do not want to hide any choices.\n * \n * Default value: 10\n */\n public maxVisibleChoices: number = 10;\n\n /**\n * Specifies whether to display question titles instead of names when users edit logical expressions.\n *\n * Default value: `false`\n */\n public showTitlesInExpressions = false;\n /**\n * Specifies whether users can edit expressions in the Logic tab as plain text.\n *\n * If you set this property to `false`, users can only use UI elements to edit logical expressions.\n *\n * Default value: `true`\n *\n * @see showLogicTab\n */\n public allowEditExpressionsInTextEditor = true;\n\n /**\n * Limits the number of columns that users can add to [Matrix](https://surveyjs.io/Documentation/Library?id=questionmatrixmodel), [Matrix Dynamic](https://surveyjs.io/Documentation/Library?id=questionmatrixdynamicmodel), and [Matrix Dropdown](https://surveyjs.io/Documentation/Library?id=questionmatrixdropdownmodel) questions.\n *\n * Default value: 0 (unlimited, taken from `settings.propertyGrid.maximumColumnsCount`)\n */\n public maximumColumnsCount: number =\n settings.propertyGrid.maximumColumnsCount;\n /**\n * Limits the number of choices that users can add to [Checkbox](https://surveyjs.io/Documentation/Library?id=questioncheckboxmodel), [Dropdown](https://surveyjs.io/Documentation/Library?id=questiondropdownmodel), and [Radiogroup](https://surveyjs.io/Documentation/Library?id=questionradiogroupmodel) questions.\n *\n * Default value: 0 (unlimited, taken from `settings.propertyGrid.maximumChoicesCount`)\n */\n public maximumChoicesCount: number =\n settings.propertyGrid.maximumChoicesCount;\n /**\n * Limits the number of rows that users can add to [Matrix](https://surveyjs.io/Documentation/Library?id=questionmatrixmodel) and [Matrix Dropdown](https://surveyjs.io/Documentation/Library?id=questionmatrixdropdownmodel) questions.\n *\n * Default value: 0 (unlimited, taken from `settings.propertyGrid.maximumRowsCount`)\n */\n public maximumRowsCount: number = settings.propertyGrid.maximumRowsCount;\n /**\n * Limits the number of rate value that users can add to [Rating](https://surveyjs.io/Documentation/Library?id=questionratingmodel) questions.\n *\n * Default value: 0 (unlimited, taken from `settings.propertyGrid.maximumRateValues`)\n */\n public maximumRateValues: number = settings.propertyGrid.maximumRateValues;\n /**\n * Obsolete. Use the [`showPagesInPreviewTab`](https://surveyjs.io/Documentation/Survey-Creator?id=surveycreator#showPagesInPreviewTab) property instead.\n */\n public showPagesInTestSurveyTab = true;\n /**\n * Specifies whether to show the page selector at the bottom of the Preview tab.\n *\n * Default value: `true`\n */\n public get showPagesInPreviewTab(): boolean { return this.showPagesInTestSurveyTab; }\n public set showPagesInPreviewTab(val: boolean) { this.showPagesInTestSurveyTab = val; }\n\n /**\n * Obsolete. Use the [`showSimulatorInPreviewTab`](https://surveyjs.io/Documentation/Survey-Creator?id=surveycreator#showSimulatorInPreviewTab) property instead.\n */\n public showSimulatorInTestSurveyTab = true;\n /**\n * Specifies whether the Preview tab displays the Device button that allows users to preview the survey on different device types.\n *\n * Default value: `true`\n */\n public get showSimulatorInPreviewTab(): boolean { return this.showSimulatorInTestSurveyTab; }\n public set showSimulatorInPreviewTab(val: boolean) { this.showSimulatorInTestSurveyTab = val; }\n\n /**\n * A [UI theme](https://surveyjs.io/Documentation/Library?id=get-started-react#configure-styles) used to display the survey in the Preview tab.\n *\n * Accepted values: `\"modern\"`, `\"default\"`, `\"defaultV2\"`\n *\n * Default value: `\"defaultV2\"`\n */\n public themeForPreview: string = \"defaultV2\";\n\n private _allowModifyPages = true;\n /**\n * Specifies whether users can add, edit, and delete survey pages.\n *\n * Default value: `true`\n */\n public get allowModifyPages() {\n return this._allowModifyPages;\n }\n public set allowModifyPages(val: boolean) {\n this._allowModifyPages = val;\n this.changePageModifications(val);\n }\n\n /**\n * Obsolete. Use the [`showDefaultLanguageInPreviewTab`](https://surveyjs.io/Documentation/Survey-Creator?id=surveycreator#showDefaultLanguageInPreviewTab) property instead.\n */\n public showDefaultLanguageInTestSurveyTab: boolean | string = \"auto\";\n /**\n * Specifies whether the Preview tab displays the language selector.\n *\n * Accepted values:\n *\n * - `\"auto\"` (default) \n * Display the language selector only if the survey is translated into more than one language.\n *\n * - `true` \n * Always display the language selector regardless of how many languages are used in the survey.\n *\n * - `false` \n * Never display the language selector.\n *\n * - `\"all\"` \n * Always display the language selector with [all supported languages](https://github.com/surveyjs/survey-creator/tree/master/packages/survey-creator-core/src/localization).\n *\n * **See also**: [Localization & Globalization](https://surveyjs.io/Documentation/Survey-Creator?id=localization)\n */\n public get showDefaultLanguageInPreviewTab(): boolean | string { return this.showDefaultLanguageInTestSurveyTab; }\n public set showDefaultLanguageInPreviewTab(val: boolean | string) { this.showDefaultLanguageInTestSurveyTab = val; }\n\n /**\n * Obsolete. Use the [`showInvisibleElementsInPreviewTab`](https://surveyjs.io/Documentation/Survey-Creator?id=surveycreator#showInvisibleElementsInPreviewTab) property instead.\n */\n public showInvisibleElementsInTestSurveyTab = true;\n /**\n * Specifies whether the Preview tab displays a checkbox that allows users to show or hide invisible survey elements.\n *\n * Default value: `true`\n */\n public get showInvisibleElementsInPreviewTab(): boolean { return this.showInvisibleElementsInTestSurveyTab; }\n public set showInvisibleElementsInPreviewTab(val: boolean) { this.showInvisibleElementsInTestSurveyTab = val; }\n\n /**\n * Set this property to true if you want to show \"page selector\" in the toolabar instead of \"pages editor\"\n */\n public showPageSelectorInToolbar = false;\n\n /**\n * Specifies whether users can switch between UI themes in the Preview tab.\n *\n * Default value: `true`\n *\n * [View Demo](https://surveyjs.io/Examples/Creator?id=theme-switcher (linkStyle))\n */\n public allowChangeThemeInPreview = true;\n\n public tabbedMenu: AdaptiveActionContainer<TabbedMenuItem>;\n\n get tabs() {\n return this.tabbedMenu.actions;\n }\n set tabs(val: Array<TabbedMenuItem>) {\n this.tabbedMenu.actions = val;\n }\n /**\n * Returns the localized string by its id\n * @param str the string id.\n */\n public getLocString(str: string) {\n return editorLocalization.getString(str);\n }\n\n /**\n * Specifies whether to show an error message if a survey is not saved in the database.\n *\n * Default value: `true`\n */\n public showErrorOnFailedSave: boolean = true;\n\n protected onSetReadOnly(newVal: boolean) { }\n\n /**\n * Gets or sets the survey locale. The default value it is empty, this means the 'en' locale is used.\n * You can set it to 'de' - German, 'fr' - French and so on.\n */\n public get locale(): string {\n return this.getPropertyValue(\"locale\", editorLocalization.currentLocale);\n }\n public set locale(value: string) {\n if (editorLocalization.currentLocale === value) return;\n editorLocalization.currentLocale = value;\n this.setPropertyValue(\"locale\", value);\n this.toolbox.updateTitles();\n this.refreshPlugin();\n const selEl = this.selectedElement;\n if (!!selEl) {\n this.selectElement(null);\n this.selectElement(selEl);\n }\n this.locStrsChanged();\n }\n public locStrsChanged(): void {\n super.locStrsChanged();\n this.tabbedMenu.locStrsChanged();\n this.toolbar.locStrsChanged();\n }\n private refreshPlugin() {\n const plugin = this.currentPlugin;\n if (!!plugin) {\n if (plugin.deactivate) {\n plugin.deactivate();\n }\n const viewType = this.viewType;\n this.viewType = \"\";\n plugin.activate();\n this.viewType = viewType;\n }\n }\n /**\n * Enables the read-only mode. If you set this property to `true`, users cannot change the initial survey configuration.\n *\n * Default value: `false`\n */\n public get readOnly() {\n return this.getPropertyValue(\"readOnly\", false);\n //return this.koReadOnly();\n }\n public set readOnly(newVal: boolean) {\n const text = this.text;\n this.setPropertyValue(\"readOnly\", newVal);\n this.onSetReadOnly(newVal);\n this.text = text;\n }\n\n /**\n * Specifies whether to enable support for right-to-left languages.\n *\n * Default value: `false`\n */\n public get isRTL() {\n return this.isRTLValue;\n }\n public set isRTL(value: boolean) {\n this.isRTLValue = value;\n }\n /**\n * The event is called when creator is going to change the active tab.\n *- sender the survey creator object that fires the event\n *- options.tabName the name of new active tab\n */\n public onActiveTabChanging: CreatorEvent = new CreatorEvent();\n\n /**\n * The event is called when creator active tab is changed.\n *- sender the survey creator object that fires the event\n *- options.tabName the name of new active tab\n *- options.model the instance of the model of the new active tab\n */\n public onActiveTabChanged: CreatorEvent = new CreatorEvent();\n /**\n * Get/set the active tab.\n * The following values are available: \"designer\", \"editor\", \"test\", \"embed\", \"logic\" and \"translation\".\n * Please note, not all tabs are visible.\n */\n public get activeTab(): string {\n return this.viewType;\n }\n public set activeTab(val: string) {\n this.makeNewViewActive(val);\n }\n /**\n * Change the active view/tab. It will return false if it can't change the current tab.\n * @param viewName name of new active view (tab). The following values are available: \"designer\", \"editor\", \"test\", \"embed\", \"logic\" and \"translation\".\n */\n public makeNewViewActive(viewName: string): boolean {\n if (viewName == this.viewType) return false;\n const chaningOptions = { tabName: viewName, allow: true };\n this.onActiveTabChanging.fire(this, chaningOptions);\n if (!chaningOptions.allow) return;\n if (!this.canSwitchViewType()) return false;\n const plugin = this.activatePlugin(viewName);\n this.viewType = viewName;\n this.onActiveTabChanged.fire(this, { tabName: viewName, plugin: plugin, model: !!plugin ? plugin.model : undefined });\n return true;\n }\n private canSwitchViewType(): boolean {\n const plugin: ICreatorPlugin = this.currentPlugin;\n return !plugin || !plugin.deactivate || plugin.deactivate();\n }\n private activatePlugin(newType: string): ICreatorPlugin {\n const plugin: ICreatorPlugin = this.getPlugin(newType);\n if (!!plugin) {\n plugin.activate();\n }\n return plugin;\n }\n private get currentPlugin(): ICreatorPlugin {\n return this.getPlugin(this.activeTab);\n }\n\n public toolbox: QuestionToolbox;\n public get toolboxCategories(): Array<any> {\n return this.toolbox.categories;\n }\n public sidebar: SidebarModel;\n\n constructor(protected options: ICreatorOptions, options2?: ICreatorOptions) {\n super();\n if (\n !!options2 ||\n typeof this.options === \"string\" ||\n this.options instanceof String\n ) {\n this.options = !!options2 ? options2 : {};\n SurveyHelper.warnText(\"Creator constructor has one parameter, as creator options, in V2.\");\n }\n this.previewOrientation = options.previewOrientation;\n this.toolbarValue = new ToolbarActionContainer(this);\n this.toolbarValue.locOwner = this;\n this.tabbedMenu = new TabbedMenuContainer();\n this.tabbedMenu.locOwner = this;\n this.selectionHistoryControllerValue = new SelectionHistory(this);\n this.sidebar = new SidebarModel(this);\n this.setOptions(this.options);\n this.patchMetadata();\n this.initSurveyWithJSON(undefined, false);\n this.toolbox = new QuestionToolbox(this.options && this.options.questionTypes ? this.options.questionTypes : null, this, true);\n this.updateToolboxIsCompact();\n this.initTabs();\n this.initDragDrop();\n const expandAction = this.sidebar.getExpandAction();\n !!expandAction && this.toolbar.actions.push(expandAction);\n }\n public updateToolboxIsCompact(newVal?: boolean) {\n if (!this.toolbox) return;\n const hasValue = newVal != undefined && newVal != null;\n if (this.toolbox.forceCompact !== undefined) {\n this.toolbox.isCompact = this.toolbox.forceCompact;\n } else if (this.toolboxLocation == \"right\") {\n this.toolbox.isCompact = this.showSidebar || (hasValue && newVal);\n } else if (hasValue) {\n this.toolbox.isCompact = newVal;\n }\n }\n\n @property({ defaultValue: true }) showToolboxValue: boolean;\n public get showToolbox() {\n return this.showToolboxValue;\n }\n public set showToolbox(val: boolean) {\n if (<any>val !== true && <any>val !== false) {\n SurveyHelper.warnText(\"showToolbox is a boolean property now.\");\n }\n if (<any>val === \"none\" || val === false || <any>val === \"top\") {\n this.showToolboxValue = false;\n } else if (val === true) {\n this.showToolboxValue = true;\n } else {\n this.toolboxLocation = val;\n this.showToolboxValue = true;\n }\n }\n private showSidebarValue: boolean = true;\n public onShowSidebarVisibilityChanged: CreatorEvent = new CreatorEvent();\n /**\n * Set this this property grid false to hide the property grid.\n */\n public get showSidebar(): boolean {\n return this.showSidebarValue;\n }\n public set showSidebar(val: boolean) {\n if (<any>val !== true && <any>val !== false) {\n SurveyHelper.warnText(\"showSidebar is a boolean property now.\");\n return;\n }\n if (this.showSidebar === val) return;\n this.setShowSidebar(val, true);\n if (!this.onShowPropertyGridVisiblityChanged.isEmpty) {\n SurveyHelper.warnNonSupported(\"onShowPropertyGridVisiblityChanged\", \"onShowSidebarVisibilityChanged\");\n this.onShowPropertyGridVisiblityChanged.fire(this, { show: val });\n }\n }\n public setShowSidebar(value: boolean, isManualMode = false) {\n this.showSidebarValue = value;\n if (isManualMode) {\n if (value) {\n this.sidebar.expandedManually = true;\n } else {\n this.sidebar.collapsedManually = true;\n }\n }\n this.updateToolboxIsCompact();\n this.onShowSidebarVisibilityChanged.fire(this, { show: value });\n }\n //#region Obsolete properties and functins\n public onShowPropertyGridVisiblityChanged: CreatorEvent = new CreatorEvent();\n public get showPropertyGrid(): boolean {\n SurveyHelper.warnNonSupported(\"showPropertyGrid\", \"showSidebar\");\n return this.showSidebar;\n }\n public set showPropertyGrid(val: boolean) {\n SurveyHelper.warnNonSupported(\"showPropertyGrid\", \"showSidebar\");\n if (<any>val !== true && <any>val !== false) {\n SurveyHelper.warnText(\"showSidebar is a boolean property.\");\n return;\n }\n this.showSidebar = val;\n }\n public rightContainerActiveItem(name: string) {\n SurveyHelper.warnNonSupported(\"rightContainerActiveItem\");\n }\n public leftContainerActiveItem(name: string) {\n SurveyHelper.warnNonSupported(\"leftContainerActiveItem\");\n }\n //#endregion Obsolete properties and functins\n\n //#region Undo/Redo\n /**\n * The event is called before undo happens.\n *- options.canUndo a boolean value. It is true by default. Set it false to hide prevent undo operation.\n */\n public onBeforeUndo: CreatorEvent = new CreatorEvent();\n /**\n * The event is called before redo happens.\n *- options.canRedo a boolean value. It is true by default. Set it false to hide prevent redo operation.\n */\n public onBeforeRedo: CreatorEvent = new CreatorEvent();\n /**\n * The event is called after undo happens.\n *- options.state is an undo/redo item.\n */\n public onAfterUndo: CreatorEvent = new CreatorEvent();\n /**\n * The event is called after redo happens.\n *- options.state is an undo/redo item.\n */\n public onAfterRedo: CreatorEvent = new CreatorEvent();\n\n public get undoRedoManager(): UndoRedoManager {\n const plugin = this.getPlugin<UndoRedoPlugin>(\"undoredo\");\n return plugin && plugin.model.undoRedoManager;\n }\n public get undoRedoController(): UndoRedoController {\n const plugin = this.getPlugin<UndoRedoPlugin>(\"undoredo\");\n return plugin && plugin.model;\n }\n /**\n * This method starts undo/redo transaction: all changes will be stored as one undo/redo item.\n */\n startUndoRedoTransaction(name: string = \"\") {\n this.undoRedoController && this.undoRedoController.startTransaction(name);\n }\n /**\n * This method stops undo/redo transaction.\n */\n stopUndoRedoTransaction() {\n this.undoRedoController && this.undoRedoController.stopTransaction();\n }\n /**\n * Returns true if Creator is currently doing undo or redo opertaions\n */\n public get isProcessingUndoRedo(): boolean {\n return this.undoRedoManager && this.undoRedoManager.isProcessingUndoRedo;\n }\n /**\n * This method performs undo uperation if possible.\n */\n public undo() {\n this.undoRedoController && this.undoRedoController.undo();\n }\n /**\n * This method performs redo uperation if possible.\n */\n public redo() {\n this.undoRedoController && this.undoRedoController.redo();\n }\n //#endregion Undo/Redo\n\n public get selectionHistoryController(): SelectionHistory {\n return this.selectionHistoryControllerValue;\n }\n\n public get currentPage(): PageModel {\n return this.survey.currentPage;\n }\n public set currentPage(value: PageModel) {\n this.survey.currentPage = value;\n }\n /**\n * An event that is raised before a new page is added to the survey.\n * \n * Parameters:\n *\n * - `sender`: `CreatorBase`\\\n * A Survey Creator instance that raised the event.\n * - `options.page`: [`PageModel`](https://surveyjs.io/form-library/documentation/api-reference/page-model)\\\n * An added page.\n * - `options.allow`: `Boolean`\\\n * Set this property to `false` if you do not want to add the page.\n */\n public onPageAdding: CreatorEvent = new CreatorEvent();\n @undoRedoTransaction()\n public addPage(pageToAdd?: PageModel, changeSelection = true, beforeAdd?: () => boolean): PageModel {\n const options = {\n page: pageToAdd,\n allow: true\n };\n this.onPageAdding.fire(this, options);\n if (!options.allow) {\n return null;\n }\n if (beforeAdd !== undefined) {\n if (!beforeAdd()) {\n return;\n }\n }\n let page = pageToAdd;\n if (!page) {\n page = this.addNewPageIntoSurvey();\n } else {\n this.survey.addPage(page);\n }\n if (changeSelection) {\n this.selectElement(page);\n }\n return page;\n }\n private addNewPageIntoSurvey(): PageModel {\n const name: string = SurveyHelper.getNewPageName(this.survey.pages);\n return this.survey.addNewPage(name);\n }\n protected initTabs() {\n this.initPlugins();\n this.initFooterToolbar();\n if (this.tabs.length > 0) {\n this.makeNewViewActive(this.tabs[0].id);\n }\n }\n private initPlugins(): void {\n this.addPlugin(\"undoredo\", new UndoRedoPlugin(this));\n if (this.showDesignerTab) {\n new TabDesignerPlugin(this);\n }\n if (this.showPreviewTab) {\n new TabTestPlugin(this);\n }\n if (this.showLogicTab) {\n new TabLogicPlugin(this);\n }\n if (this.showJSONEditorTab) {\n if (TabJsonEditorAcePlugin.hasAceEditor()) {\n new TabJsonEditorAcePlugin(this);\n } else {\n new TabJsonEditorTextareaPlugin(this);\n }\n }\n if (this.showEmbeddedSurveyTab) {\n new TabEmbedPlugin(this);\n }\n if (this.showTranslationTab) {\n new TabTranslationPlugin(this);\n }\n }\n private initFooterToolbar(): void {\n if (!this.footerToolbar) {\n this.footerToolbar = new ActionContainer();\n [\"undoredo\", \"designer\", \"test\"].forEach((pluginKey: string) => {\n const plugin = this.getPlugin(pluginKey);\n if (!!plugin && !!plugin[\"addFooterActions\"]) {\n plugin[\"addFooterActions\"]();\n }\n });\n }\n }\n public getOptions(): ICreatorOptions {\n return this.options || {};\n }\n protected setOptions(options: ICreatorOptions): void {\n if (!options) options = {};\n const obsoleteOptions = {};\n obsoleteOptions[\"showTestSurveyTab\"] = \"showPreviewTab\";\n obsoleteOptions[\"showDefaultLanguageInTestSurveyTab\"] = \"showDefaultLanguageInPreviewTab\";\n obsoleteOptions[\"showInvisibleElementsInPreviewTab\"] = \"showInvisibleElementsInTestSurveyTab\";\n for (let key in obsoleteOptions) {\n if (options[key] === undefined) continue;\n const newKey = obsoleteOptions[key];\n if (options[newKey] === undefined) {\n options[newKey] = options[key];\n delete options[key];\n }\n }\n this.options = options;\n for (let key in options) {\n this[key] = options[key];\n }\n }\n private setPropertyPlaceHolder(className: string, propertyName: string, value: string) {\n const prop: any = Serializer.findProperty(className, propertyName);\n if (!!prop) {\n prop.placeholder = value;\n }\n }\n private setPropertyVisibility(className: string, visible: boolean, ...properties: string[]) {\n if (!Array.isArray(properties)) return;\n for (var i = 0; i < properties.length; i++) {\n const prop = Serializer.findProperty(className, properties[i]);\n if (!!prop) {\n prop.visible = visible;\n }\n }\n }\n private patchMetadata(): void {\n this.setPropertyPlaceHolder(\"survey\", \"title\", \"pe.surveyTitlePlaceholder\");\n this.setPropertyPlaceHolder(\"survey\", \"description\", \"pe.surveyDescriptionPlaceholder\");\n this.setPropertyVisibility(\"survey\", false, \"logoPosition\");\n if (this.pageEditMode !== \"single\") {\n this.setPropertyPlaceHolder(\"page\", \"title\", \"pe.pageTitlePlaceholder\");\n this.setPropertyPlaceHolder(\"page\", \"description\", \"pe.pageDescriptionPlaceholder\");\n }\n }\n\n isCanModifyProperty(obj: Base, propertyName: string): boolean {\n const property: JsonObjectProperty = Serializer.findProperty(\n obj.getType(),\n propertyName\n );\n let parentObj, parentProperty: JsonObjectProperty;\n if (obj instanceof ItemValue) {\n parentObj = obj.locOwner;\n parentProperty = Survey.Serializer.findProperty(\n parentObj.getType(),\n obj.ownerPropertyName || propertyName\n );\n let allowEdit = true;\n if (parentObj instanceof QuestionSelectBase) allowEdit = (parentObj as QuestionSelectBase).isItemInList(obj);\n\n const allowQuestionOperations = this.getElementAllowOperations(parentObj);\n if (allowQuestionOperations.allowEdit === false)\n return false;\n\n const options: ICollectionItemAllowOperations = { allowDelete: true, allowEdit: allowEdit };\n this.onCollectionItemAllowingCallback(parentObj,\n property,\n parentObj.getPropertyValue(parentProperty?.name),\n obj,\n options\n );\n if (options.allowEdit === false) {\n return false;\n }\n\n if (this.onIsPropertyReadOnlyCallback(\n parentObj,\n parentProperty,\n parentProperty?.readOnly,\n null,\n null\n )) {\n return false;\n }\n }\n if (obj instanceof SurveyElement) {\n const allowElementOperations = this.getElementAllowOperations(obj);\n if (allowElementOperations.allowEdit === false)\n return false;\n }\n return (\n !property ||\n !this.onIsPropertyReadOnlyCallback(\n obj,\n property,\n property.readOnly,\n parentObj,\n parentProperty\n )\n );\n }\n\n onIsPropertyReadOnlyCallback(\n obj: Base,\n property: JsonObjectProperty,\n readOnly: boolean,\n parentObj: Base,\n parentProperty: JsonObjectProperty\n ): boolean {\n const proposedValue = this.readOnly || readOnly;\n if (this.onGetPropertyReadOnly.isEmpty) return proposedValue;\n const options = {\n obj: obj,\n property: property,\n readOnly: proposedValue,\n propertyName: property.name,\n parentObj: parentObj,\n parentProperty: parentProperty\n };\n this.onGetPropertyReadOnly.fire(this, options);\n return options.readOnly;\n }\n\n /**\n * The editing survey object (Survey.Survey)\n */\n public get survey(): SurveyModel {\n return this.surveyValue;\n }\n private existingPages: {};\n private isInitialSurveyEmptyValue: boolean;\n /**\n * Returns true if initial survey was empty. It was not set via JSON property and default new survey is empty as well.\n * @returns true if initial survey doesn't have any elements or properties\n */\n public get isInitialSurveyEmpty(): boolean { return this.isInitialSurveyEmptyValue; }\n protected initSurveyWithJSON(json: any, clearState: boolean): void {\n if (!json) {\n json = { \"logoPosition\": \"right\" };\n }\n // currentPlugin.deactivate && currentPlugin.deactivate();\n this.existingPages = {};\n const survey = this.createSurvey({});\n survey.css = defaultV2Css;\n survey.setDesignMode(true);\n survey.lazyRendering = true;\n survey.setJsonObject(json);\n this.isInitialSurveyEmptyValue = survey.isEmpty;\n if (survey.isEmpty) {\n survey.setJsonObject(this.getDefaultSurveyJson());\n }\n survey.pages.forEach((page: PageModel) => {\n this.existingPages[page.id] = true;\n });\n this.onDesignerSurveyCreated.fire(this, { survey: survey });\n survey.onQuestionAdded.add((sender: SurveyModel, options) => {\n this.doOnQuestionAdded(options.question, options.parentPanel);\n });\n survey.onPanelAdded.add((sender: SurveyModel, options) => {\n this.doOnPanelAdded(options.panel, options.parentPanel);\n });\n survey.onPageAdded.add((sender: SurveyModel, options) => {\n if (!!this.existingPages[options.page.id]) return;\n this.existingPages[options.page.id] = true;\n this.doOnPageAdded(options.page);\n });\n survey.onDragDropAllow.add((sender, options) => {\n (<any>options).survey = sender;\n this.onDragDropAllow.fire(this, options);\n });\n\n this.setSurvey(survey);\n this.updatePlugin(this.activeTab);\n if (this.activeTab !== \"designer\") {\n this.updatePlugin(\"designer\");\n }\n if (!!this.undoRedoController) {\n this.undoRedoController.updateSurvey();\n }\n }\n private updatePlugin(name: string): void {\n const plugin = this.getPlugin(this.activeTab);\n if (!!plugin && !!plugin.update) {\n plugin.update();\n }\n }\n protected initDragDrop() {\n this.initDragDropSurveyElements();\n this.initDragDropChoices();\n }\n /**\n * An event that is raised when users start to drag a survey element within the design surface.\n * \n * Parameters:\n * \n * - `sender`: `CreatorBase`\\\n * A Survey Creator instance that raised the event.\n * - `options.draggedElement`: `any`\\\n * A survey element being dragged.\n * - `options.fromElement`: `any`\\\n * A survey element from which `draggedElement` is being dragged.\n * - `options.toElement`: `any`\\\n * A survey element to which `draggedElement` is being dragged.\n * @see onDragEnd\n */\n public onDragStart: Survey.Event<() => any, any, any> = new Survey.Event<() => any, any, any>();\n public onBeforeDrop: Survey.Event<() => any, any, any> = this.onDragStart;\n /**\n * An event that is raised when users finish dragging a survey element within the design surface.\n * \n * Parameters:\n * \n * - `sender`: `CreatorBase`\\\n * A Survey Creator instance that raised the event.\n * - `options.draggedElement`: `any`\\\n * A survey element that was dragged.\n * - `options.fromElement`: `any`\\\n * A survey element from which `draggedElement` was dragged.\n * - `options.toElement`: `any`\\\n * A survey element to which `draggedElement` was dragged.\n */\n public onDragEnd: Survey.Event<() => any, any, any> = new Survey.Event<() => any, any, any>();\n public onAfterDrop: Survey.Event<() => any, any, any> = this.onDragEnd;\n private initDragDropSurveyElements() {\n DragDropSurveyElements.restrictDragQuestionBetweenPages =\n settings.dragDrop.restrictDragQuestionBetweenPages;\n this.dragDropSurveyElements = new DragDropSurveyElements(null, this);\n let isDraggedFromToolbox = false;\n this.dragDropSurveyElements.onDragStart.add((sender, options) => {\n let panel = sender.dropTarget.parent;\n isDraggedFromToolbox = !sender.draggedElement.parent;\n this.onDragStart.fire(sender, options);\n this.startUndoRedoTransaction(\"drag drop\");\n this.undoRedoManager.setUndoCallbackForTransaction(() => {\n panel.updateRows();\n });\n });\n this.dragDropSurveyElements.onDragEnd.add((sender, options) => {\n this.stopUndoRedoTransaction();\n this.selectElement(options.draggedElement, undefined, false, isDraggedFromToolbox);\n isDraggedFromToolbox = false;\n this.onDragEnd.fire(sender, options);\n });\n }\n private initDragDropChoices() {\n this.dragDropChoices = new DragDropChoices(null, this);\n this.dragDropChoices.onDragStart.add((sender, options) => {\n this.startUndoRedoTransaction(\"drag drop\");\n });\n this.dragDropChoices.onDragEnd.add((sender, options) => {\n this.stopUndoRedoTransaction();\n this.selectElement(options.draggedElement, undefined, false);\n });\n }\n\n public updateElementsOnLocaleChanged(obj: Base, propertyName: string): void {\n if (obj.getType() !== \"survey\" || propertyName !== \"locale\") return;\n const pages = this.survey.pages;\n for (var i = 0; i < pages.length; i++) {\n pages[i].locStrsChanged();\n }\n }\n public updateConditionsOnNameChanged(obj: Base, propertyName: string, oldValue: any): void {\n if (this.isObjQuestion(obj)) {\n if (propertyName === \"name\" && !obj[\"valueName\"]) {\n this.updateLogicOnQuestionNameChanged(oldValue, obj[\"name\"]);\n }\n if (propertyName === \"valueName\") {\n const oldName = !!oldValue ? oldValue : obj[\"name\"];\n const newName = !!obj[\"valueName\"] ? obj[\"valueName\"] : obj[\"name\"];\n this.updateLogicOnQuestionNameChanged(oldName, newName);\n }\n if (propertyName === \"name\" && obj.isDescendantOf(\"selectbase\")) {\n this.updateChoicesFromQuestionOnColumnNameChanged(oldValue, obj[\"name\"]);\n }\n }\n if (propertyName === \"name\" && obj.isDescendantOf(\"matrixdropdowncolumn\")) {\n this.updateLogicOnColumnNameChanged(obj, oldValue, obj[\"name\"]);\n }\n }\n private surveyLogicForUpdate: SurveyLogic;\n private surveyLogicRenaming: boolean;\n private getSurveyLogicForUpdate(): SurveyLogic {\n if (!!this.surveyLogicForUpdate && this.surveyLogicForUpdate.survey !== this.survey) {\n this.surveyLogicForUpdate = undefined;\n }\n if (!this.surveyLogicForUpdate) {\n this.surveyLogicForUpdate = this.createSurveyLogicForUpdate();\n }\n return this.surveyLogicForUpdate;\n }\n private clearSurveyLogicForUpdate(obj: Base, propertyName: string, value: any): void {\n if (this.surveyLogicRenaming || !this.surveyLogicForUpdate || !obj || !propertyName) return;\n if (this.needClearSurveyLogicForUpdate(obj, propertyName, value)) {\n this.surveyLogicForUpdate = undefined;\n }\n }\n private needClearSurveyLogicForUpdate(obj: Base, propertyName: string, value: any): boolean {\n if (Array.isArray(value)) {\n return true;\n }\n const prop = Serializer.findProperty(obj.getType(), propertyName);\n return !!prop && [\"expression\", \"condition\", \"questionvalue\", \"question\"].indexOf(prop.type) > -1;\n }\n private updateSurveyLogicValues(obj: Base, propertyName: string, oldValue: any): void {\n if (!obj || !propertyName || Survey.Helpers.isValueEmpty(oldValue)) return;\n if (propertyName === \"value\" && obj.isDescendantOf(\"itemvalue\")) {\n this.updateSurveyLogicItemValue(<ItemValue>obj, oldValue);\n }\n }\n private updateSurveyLogicItemValue(item: ItemValue, oldValue: any): void {\n if (!item.locOwner || !settings.logic.updateExpressionsOnChanging.choiceValue) return;\n if ([\"choices\", \"rateValues\", \"columns\", \"rows\"].indexOf(item.ownerPropertyName) < 0) return;\n this.surveyLogicRenaming = true;\n const logicUpdater = this.getSurveyLogicForUpdate();\n if (item.ownerPropertyName === \"rows\") {\n logicUpdater.renameRowValue(item, oldValue);\n } else {\n logicUpdater.renameItemValue(item, oldValue);\n }\n this.surveyLogicRenaming = false;\n }\n protected createSurveyLogicForUpdate(): SurveyLogic {\n return new SurveyLogic(this.survey, this);\n }\n private updateLogicOnQuestionNameChanged(oldName: string, newName: string) {\n if (oldName === newName || !settings.logic.updateExpressionsOnChanging.questionName) return;\n this.surveyLogicRenaming = true;\n this.getSurveyLogicForUpdate().renameQuestion(oldName, newName);\n this.surveyLogicRenaming = false;\n }\n private updateLogicOnColumnNameChanged(column: Base, oldName: string, newName: string) {\n if (!oldName || oldName === newName || !settings.logic.updateExpressionsOnChanging.columnName) return;\n this.surveyLogicRenaming = true;\n this.getSurveyLogicForUpdate().renameColumn(<Survey.MatrixDropdownColumn>column, oldName);\n this.surveyLogicRenaming = false;\n }\n private updateChoicesFromQuestionOnColumnNameChanged(oldName: string, newName: string) {\n const questions = this.survey.getAllQuestions();\n questions.forEach(q => {\n if (q.choicesFromQuestion === oldName) {\n q.choicesFromQuestion = newName;\n }\n });\n }\n public isObjQuestion(obj: Base): boolean {\n return this.isObjThisType(obj, \"question\");\n }\n public isObjPage(obj: Base): boolean {\n return this.isObjThisType(obj, \"page\");\n }\n private isObjThisType(obj: Base, typeName: string): boolean {\n var classInfo = Survey.Serializer.findClass(obj.getType());\n\n while (!!classInfo && !!classInfo.parentName) {\n if (classInfo.name === typeName) return true;\n classInfo = Survey.Serializer.findClass(classInfo.parentName);\n }\n return !!classInfo && classInfo.name === typeName;\n }\n\n private addNewElementReason: string;\n @ignoreUndoRedo()\n private doOnQuestionAdded(question: Question, parentPanel: any) {\n question.name = this.generateUniqueName(question, question.name);\n var page = this.getPageByElement(question);\n var options = { question: question, page: page, reason: this.addNewElementReason };\n this.onQuestionAdded.fire(this, options);\n }\n @ignoreUndoRedo()\n private doOnPanelAdded(panel: PanelModel, parentPanel: any) {\n var page = this.getPageByElement(panel);\n var options = { panel: panel, page: page, reason: this.addNewElementReason };\n this.onPanelAdded.fire(this, options);\n }\n @ignoreUndoRedo()\n private doOnPageAdded(page: PageModel) {\n var options = { page: page };\n this.onPageAdded.fire(this, options);\n this.setModified({ type: \"PAGE_ADDED\", newValue: options.page });\n }\n private getPageByElement(obj: Base): PageModel {\n return this.survey.getPageByElement(<IElement>(<any>obj));\n }\n\n private getDefaultSurveyJson(): any {\n var json = settings.defaultNewSurveyJSON;\n if (\n json[\"pages\"] &&\n json[\"pages\"][\"length\"] > 0 &&\n json[\"pages\"][0][\"name\"]\n ) {\n json[\"pages\"][0][\"name\"] =\n editorLocalization.getString(\"ed.newPageName\") + \"1\";\n }\n return json;\n }\n\n protected setSurvey(survey: SurveyModel) {\n if (!!this.surveyValue) {\n this.surveyValue.dispose();\n }\n this.surveyValue = survey;\n this.selectElement(survey);\n this.selectionHistoryController.reset();\n }\n\n private getSurveyTextFromDesigner() {\n if (!this.survey) return \"\";\n var json = (<any>this.survey).toJSON();\n json = this.singlePageJSON(json);\n const indent = settings.jsonEditor.indentation;\n if (this.generateValidJSON) {\n return JSON.stringify(json, null, indent);\n }\n return new SurveyJSON5().stringify(json, null, indent);\n }\n\n protected setTextValue(value: string) {\n if (!!this.setSurveyJSONTextCallback) {\n this.setSurveyJSONTextCallback(value);\n }\n }\n\n /**\n * Set JSON as text into survey. Clear undo/redo states optionally.\n * @param value JSON as text\n * @param clearState default false. Set this parameter to true to clear undo/redo states.\n */\n public changeText(value: string, clearState = false): void {\n this.setTextValue(value);\n if (!value) {\n this.initSurveyWithJSON(undefined, clearState);\n } else {\n const textWorker = new SurveyTextWorker(value);\n if (textWorker.isJsonCorrect || !!textWorker.survey) {\n this.initSurveyWithJSON(textWorker.survey.toJSON(), clearState);\n } else {\n this.viewType = \"editor\";\n }\n }\n }\n\n /**\n * The Survey JSON as a text. Use it to get Survey JSON or change it.\n * @see JSON\n */\n public get text(): string {\n if (!!this.getSurveyJSONTextCallback) {\n return this.getSurveyJSONTextCallback().text;\n }\n return this.getSurveyTextFromDesigner();\n }\n public set text(value: string) {\n this.changeText(value, true);\n }\n\n public getSurveyJSON(): any {\n if (this.viewType != \"editor\") {\n return new Survey.JsonObject().toJsonObject(this.survey);\n }\n var surveyJsonText = this.text;\n var textWorker = new SurveyTextWorker(surveyJsonText);\n if (textWorker.isJsonCorrect) {\n return new Survey.JsonObject().toJsonObject(textWorker.survey);\n }\n return null;\n }\n\n public getObjectDisplayName(\n obj: Base,\n area: string,\n reason: string = undefined,\n displayName: string = undefined\n ): string {\n if (!displayName) {\n displayName = SurveyHelper.getObjectName(obj, this.showObjectTitles);\n }\n var options = { obj: obj, displayName: displayName, area: area, reason: reason };\n this.onGetObjectDisplayName.fire(this, options);\n return options.displayName;\n }\n\n public createSurvey(json: any = {}, reason: string = \"designer\"): SurveyModel {\n const survey = this.createSurveyCore(json, reason);\n if (reason === \"designer\" || reason === \"modal-question-editor\") {\n initializeDesignTimeSurveyModel(survey, this);\n }\n survey[\"needRenderIcons\"] = false;\n if (reason != \"designer\" && reason != \"test\") {\n (<any>survey).locale = editorLocalization.currentLocale;\n }\n this.onSurveyInstanceCreated.fire(this, { survey: survey, reason: reason });\n return survey;\n }\n protected createSurveyCore(json: any = {}, reason: string): SurveyModel {\n return new SurveyModel(json);\n }\n private _stateValue: string;\n /**\n * Returns the creator state. It may return empty string or \"saving\" and \"saved\".\n */\n public get state(): string {\n return !!this._stateValue ? this._stateValue : \"\";\n }\n protected setState(value: string) {\n this._stateValue = value;\n this.onStateChanged.fire(this, { val: value });\n if (!!value) {\n this.notify(this.getLocString(\"ed.\" + value));\n const actions = this.toolbarItems.filter(a => a.id === \"svd-save\");\n if (Array.isArray(actions) && actions.length > 0) {\n actions[0].enabled = this.state === \"modified\";\n actions[0].active = this.state === \"modified\";\n }\n }\n }\n public onStateChanged: CreatorEvent = new CreatorEvent();\n\n notifier = new Notifier({\n root: \"svc-notifier\",\n info: \"svc-notifier--info\",\n error: \"svc-notifier--error\",\n success: \"svc-notifier--success\",\n button: \"\",\n shown: \"svc-notifier--shown\"\n });\n\n public setModified(options: any = null): void {\n this.setState(\"modified\");\n this.onModified.fire(this, options);\n this.isAutoSave && this.doAutoSave();\n }\n public notifySurveyPropertyChanged(options: any): void {\n this.clearSurveyLogicForUpdate(options.target, options.name, options.newValue);\n this.updateSurveyLogicValues(options.target, options.name, options.oldValue);\n const plugin = this.currentPlugin;\n if (!!plugin && !!plugin.onDesignerSurveyPropertyChanged) {\n plugin.onDesignerSurveyPropertyChanged(options.target, options.name);\n }\n if (!this.onSurveyPropertyValueChanged.isEmpty) {\n options.propertyName = options.name;\n options.obj = options.target;\n options.value = options.newValue;\n this.onSurveyPropertyValueChanged.fire(this, options);\n }\n options.type = \"PROPERTY_CHANGED\";\n this.setModified(options);\n }\n /**\n * This function triggers user notification (via the alert() function if no onNotify event handler added).\n * @see onNotify\n */\n public notify(msg: string, type: \"info\" | \"error\" = \"info\") {\n if (this.onNotify.isEmpty) {\n this.notifier.notify(msg, type);\n // alert(msg);\n } else {\n this.onNotify.fire(this, { message: msg });\n }\n }\n\n protected convertQuestion(obj: Question, className: string): Question {\n var newQuestion = <Question>QuestionConverter.convertObject(obj, className, this.getDefaultElementJSON(obj.getType()));\n this.setModified({\n type: \"QUESTION_CONVERTED\",\n className: className,\n oldValue: obj,\n newValue: newQuestion\n });\n return newQuestion;\n }\n private getDefaultElementJSON(elType: string): any {\n if (!this.toolbox) return null;\n const item = this.toolbox.getItemByName(elType);\n return !!item ? item.json : null;\n }\n private singlePageJSON(json: any) {\n if (this.pageEditMode === \"single\") {\n const pages = json.pages;\n if (Array.isArray(pages) && pages.length > 0) {\n if (pages[0].elements !== undefined) {\n json.elements = pages[0].elements;\n }\n delete json.pages;\n }\n }\n return json;\n }\n /**\n * The Survey JSON. Use it to get Survey JSON or change it.\n * @see text\n */\n public get JSON(): any {\n const json = (<any>this.survey).toJSON();\n return this.singlePageJSON(json);\n }\n public set JSON(val: any) {\n if (this.viewType == \"editor\") {\n this.setTextValue(JSON.stringify(val));\n } else {\n this.initSurveyWithJSON(val, true);\n }\n }\n public loadSurvey(surveyId: string): void {\n new Survey.dxSurveyService().loadSurvey(\n surveyId,\n (success: boolean, result: string, response: any) => {\n if (success && result) {\n this.JSON = result;\n }\n }\n );\n }\n protected doClickQuestionCore(\n element: IElement,\n modifiedType: string = \"ADDED_FROM_TOOLBOX\",\n index: number = -1,\n panel: IPanel = null\n ) {\n if (this.survey.pageCount == 0) {\n this.addNewPageIntoSurvey();\n }\n var parent: IPanel = this.currentPage;\n if (this.pageEditMode === \"bypage\") {\n const desigerTab = this.getPlugin(\"designer\").model as any;\n const pagesController = desigerTab.pagesController;\n parent = pagesController.page2Display;\n }\n var selectedElement = this.getSelectedSurveyElement();\n if (selectedElement && selectedElement.parent && selectedElement[\"page\"] == parent &&\n (<any>selectedElement !== <any>panel)) {\n parent = selectedElement.parent;\n if (index < 0) {\n index = parent.elements.indexOf(selectedElement);\n if (index > -1) index++;\n }\n }\n if (panel) {\n parent = panel;\n }\n this.addNewElementReason = modifiedType;\n const currentRow = this.findRowByElement(selectedElement, parent);\n if (currentRow && this.isRowMultiline(currentRow)) {\n this.addElemenMultiline(parent, element, index, currentRow);\n } else {\n parent.addElement(element, index);\n }\n this.addNewElementReason = \"\";\n this.setModified({ type: modifiedType, question: element });\n }\n\n private isRowMultiline(row) {\n return row.elements.length > 1;\n }\n\n private findRowByElement(element, parent) {\n if (!element) return null;\n if (element.isPage) return element.rows[element.rows.length - 1];\n return parent.rows.find(row => row.elements.indexOf(element) !== -1);\n }\n\n private addElemenMultiline(parent: any, element: any, index, currentRow: any) {\n const elsCount = currentRow.elements.length;\n const prevElement = currentRow.elements[elsCount - 1];\n prevElement.startWithNewLine = true;\n parent.addElement(element, index);\n prevElement.startWithNewLine = false;\n }\n\n public setNewNames(element: Survey.ISurveyElement) {\n this.newQuestions = [];\n this.newPanels = [];\n this.newQuestionChangedNames = {};\n this.setNewNamesCore(element);\n this.updateNewElementExpressions(element);\n }\n private updateNewElementExpressions(element: Survey.ISurveyElement) {\n var survey = this.createSurvey({}, \"updateNewElementExpressions\");\n survey.setDesignMode(true);\n if (element.isPage) {\n survey.addPage(<Survey.PageModel>element);\n } else {\n survey.addNewPage(\"p1\");\n survey.pages[0].addElement(<IElement>element);\n }\n var logic = new SurveyLogic(survey);\n for (var key in this.newQuestionChangedNames) {\n logic.renameQuestion(key, this.newQuestionChangedNames[key]);\n }\n }\n\n protected getAllQuestions(): Array<any> {\n var result = [];\n for (var i = 0; i < this.survey.pages.length; i++) {\n this.addElements(this.survey.pages[i].elements, false, result);\n }\n this.addElements(this.newPanels, false, result);\n this.addElements(this.newQuestions, false, result);\n return result;\n }\n\n protected getAllPanels(): Array<any> {\n var result = [];\n for (var i = 0; i < this.survey.pages.length; i++) {\n this.addElements(this.survey.pages[i].elements, true, result);\n }\n this.addElements(this.newPanels, true, result);\n this.addElements(this.newQuestions, true, result);\n return result;\n }\n\n protected addElements(\n elements: Array<any>,\n isPanel: boolean,\n result: Array<any>\n ) {\n for (var i = 0; i < elements.length; i++) {\n if (elements[i].isPanel === isPanel) {\n result.push(elements[i]);\n }\n this.addElements(SurveyHelper.getElements(elements[i]), isPanel, result);\n }\n }\n\n protected getNewName(type: string, isPanel?: boolean): string {\n if (type == \"page\") return SurveyHelper.getNewPageName(this.survey.pages);\n if (isPanel) return this.getNewPanelName();\n return this.getNewQuestionName();\n }\n protected getNewQuestionName(): string {\n return SurveyHelper.getNewQuestionName(this.getAllQuestions());\n }\n protected getNewPanelName(): string {\n return SurveyHelper.getNewPanelName(this.getAllPanels());\n }\n\n protected setNewNamesCore(element: Survey.ISurveyElement) {\n var elType = element[\"getType\"]();\n var newName = this.getNewName(elType, element.isPanel);\n if (newName != element.name) {\n this.newQuestionChangedNames[element.name] = newName;\n element.name = newName;\n }\n if (element.isPanel || elType == \"page\") {\n if (element.isPanel) {\n this.newPanels.push(element);\n }\n var panel = <Survey.PanelModelBase>(<any>element);\n for (var i = 0; i < panel.elements.length; i++) {\n this.setNewNamesCore(panel.elements[i]);\n }\n } else {\n this.newQuestions.push(element);\n }\n }\n\n public createNewElement(json: any): IElement {\n var newElement = Survey.Serializer.createClass(json[\"type\"]);\n new Survey.JsonObject().toObject(json, newElement);\n this.setNewNames(newElement);\n return newElement;\n }\n\n public copyElement(element: Base): IElement {\n var json = new Survey.JsonObject().toJsonObject(element);\n json.type = element.getType();\n return this.createNewElement(json);\n }\n\n /**\n * Copy a question to the active page\n * @param question A copied Survey.Question\n */\n public fastCopyQuestion(question: Base): Survey.IElement {\n var newElement = this.copyElement(question);\n var index = !!question[\"parent\"]\n ? question[\"parent\"].elements.indexOf(question) + 1\n : -1;\n this.doClickQuestionCore(newElement, \"ELEMENT_COPIED\", index);\n return newElement;\n }\n /**\n * Get or set the current selected object in the Creator. It can be a question, panel, page or survey itself.\n */\n public get selectedElement(): Base {\n return this.selectedElementValue;\n }\n public set selectedElement(val: Base) {\n this.selectElement(val);\n }\n /**\n * @Deprecated Obsolete. Please use deleteCurrentElement.\n * @see deleteCurrentElement\n */\n public deleteCurrentObject() {\n this.deleteCurrentElement();\n }\n /**\n * Delete a currently selected element in the survey. It can be a question, a panel or a page.\n */\n public deleteCurrentElement() {\n this.deleteObject(this.selectedElement);\n }\n /**\n * Delete an element in the survey. It can be a question, a panel or a page.\n * @param element a survey element.\n */\n public deleteElement(element: Base) {\n this.deleteObject(element);\n }\n /**\n * Create a new page with the same elements and place it next to the current one. It returns the new created Survey.Page\n * @param page A copied Survey.Page\n */\n public copyPage(page: PageModel): PageModel {\n var newPage = <PageModel>(<any>this.copyElement(page));\n var index = this.survey.pages.indexOf(page);\n if (index > -1) {\n this.survey.pages.splice(index + 1, 0, newPage);\n } else {\n this.survey.pages.push(newPage);\n }\n this.addNewElementReason = \"ELEMENT_COPIED\";\n newPage.questions.forEach(q => this.doOnQuestionAdded(q, q.parent));\n const panels: any = newPage.getPanels();\n if (Array.isArray(panels)) panels.forEach(p => this.doOnPanelAdded(p, p.parent));\n this.addNewElementReason = \"\";\n return newPage;\n }\n\n protected deleteObjectCore(obj: any) {\n if (obj.isPage) {\n var newPage = this.getNextPage(obj);\n this.survey.removePage(obj);\n this.selectElement(!!newPage ? newPage : this.survey);\n } else {\n this.deletePanelOrQuestion(obj);\n }\n this.setModified({\n type: \"OBJECT_DELETED\",\n target: obj\n });\n this.updateConditionsOnRemove(obj);\n }\n private getNextPage(page: PageModel): PageModel {\n var index = this.survey.pages.indexOf(page);\n if (index < 0 || this.survey.pages.length == 1) return null;\n if (index == this.survey.pages.length - 1) index--;\n else index++;\n if (index < 0 || index > this.survey.pages.length - 1) return null;\n return this.survey.pages[index];\n }\n @undoRedoTransaction()\n protected deleteObject(obj: any) {\n var options = {\n element: obj,\n elementType: SurveyHelper.getObjectType(obj),\n allowing: true\n };\n this.onElementDeleting.fire(this, options);\n if (!options.allowing) return;\n this.deleteObjectCore(obj);\n }\n protected updateConditionsOnRemove(obj: any) {\n var objType = SurveyHelper.getObjectType(obj);\n var questions;\n if (objType == ObjType.Question) {\n questions = [obj];\n } else {\n var questions = obj.questions;\n }\n if (!questions) return;\n var logic = new SurveyLogic(<any>this.survey, <any>this);\n for (var i = 0; i < questions.length; i++) {\n logic.removeQuestion(questions[i].getValueName());\n }\n }\n\n public isElementSelected(element: Base): boolean {\n if (!element || element.isDisposed) return false;\n return element.getPropertyValue(\"isSelectedInDesigner\");\n }\n\n public selectElement(element: any, propertyName?: string, focus: boolean | string = true, startEdit = false) {\n if (!!element && (element.isDisposed || ((element.isQuestion || element.isPanel) && !element.parent))) return;\n var oldValue = this.selectedElement;\n if (oldValue !== element) {\n this.selectedElementValue = this.onSelectingElement(element);\n if (oldValue !== this.selectedElementValue) {\n if (!!oldValue && !oldValue.isDisposed) {\n oldValue.setPropertyValue(\"isSelectedInDesigner\", false);\n }\n if (!!this.selectedElementValue) {\n this.selectedElementValue.setPropertyValue(\n \"isSelectedInDesigner\",\n true\n );\n }\n }\n }\n if (oldValue !== element || !!propertyName) {\n this.selectionChanged(this.selectedElement, propertyName, !!focus);\n }\n var selEl: any = this.getSelectedSurveyElement();\n if (oldValue !== element && !!document && !!selEl) {\n this.focusElement(element, focus, selEl, propertyName, startEdit);\n }\n }\n public focusElement(element: any, focus: string | boolean, selEl: any = null, propertyName: string = null, startEdit: boolean = null) {\n if (!selEl) selEl = this.getSelectedSurveyElement();\n setTimeout(() => {\n if (focus && !!selEl) {\n const el = document.getElementById(selEl.id);\n if (!!el) {\n el.scrollIntoView({ block: \"center\" });\n if (!propertyName && el.parentElement) {\n let elToFocus: HTMLElement = (typeof (focus) === \"string\") ? el.parentElement.querySelector(focus) : el.parentElement;\n elToFocus && elToFocus.focus();\n }\n }\n }\n if (startEdit && !!element) {\n StringEditorConnector.get((element as Question).locTitle).activateEditor();\n }\n }, 100);\n }\n\n private getSelectedSurveyElement(): IElement {\n var sel: any = this.selectedElement;\n if (!sel || sel.getType() == \"survey\") return null;\n return sel.isInteractiveDesignElement && sel.id ? sel : null;\n }\n private onSelectingElement(val: Base): Base {\n var options = { newSelectedElement: val };\n this.onSelectedElementChanging.fire(this, options);\n return options.newSelectedElement;\n }\n\n //#region Obsolete designerPropertyGrid\n protected get designerPropertyGrid(): PropertyGridModel {\n const propertyGridTab = this.sidebar.getTabById(\"propertyGrid\");\n if (!propertyGridTab) return null;\n return propertyGridTab.model ? (propertyGridTab.model.propertyGridModel as any as PropertyGridModel) : null;\n }\n public get propertyGrid(): SurveyModel {\n return this.designerPropertyGrid.survey;\n }\n /**\n * Collapse certain property editor tab (category) in properties panel/grid\n * name - tab category name\n * @see collapseAllPropertyGridCategories\n * @see expandPropertyGridCategory\n * @see expandAllPropertyGridCategories\n */\n public collapsePropertyGridCategory(name: string) {\n if (!!this.designerPropertyGrid) {\n this.designerPropertyGrid.collapseCategory(name);\n }\n }\n /**\n * Expand certain property editor tab (category) in properties panel/grid\n * name - tab category name\n * @see collapsePropertyGridCategory\n * @see collapseAllPropertyGridCategories\n * @see expandAllPropertyGridCategories\n */\n public expandPropertyGridCategory(name: string) {\n if (!!this.designerPropertyGrid) {\n this.designerPropertyGrid.expandCategory(name);\n }\n }\n /**\n * Expand all property editor tabs (categories) in properties panel/grid\n * @see collapsePropertyGridCategory\n * @see expandPropertyGridCategory\n * @see expandAllPropertyGridCategories\n */\n public collapseAllPropertyGridCategories() {\n if (!!this.designerPropertyGrid) {\n this.designerPropertyGrid.collapseAllCategories();\n }\n }\n /**\n * Expand all property editor tabs (categories) in properties panel/grid\n * @see collapsePropertyGridCategory\n * @see collapseAllPropertyGridCategories\n * @see expandPropertyGridCategory\n */\n public expandAllPropertyGridCategories() {\n if (!!this.designerPropertyGrid) {\n this.designerPropertyGrid.expandAllCategories();\n }\n }\n /**\n * @Deprecated Obsolete. Collapse all property editor tabs (categories) in properties panel/grid\n * @see collapseAllPropertyGridCategories\n *\n */\n public collapseAllPropertyTabs(): void {\n this.collapseAllPropertyGridCategories();\n }\n /**\n * @Deprecated Obsolete. Expand all property editor tabs (categories) in properties panel/grid\n * @see expandAllPropertyGridCategories\n */\n public expandAllPropertyTabs(): void {\n this.expandAllPropertyGridCategories();\n }\n /**\n * @Deprecated Obsolete. Expand certain property editor tab (category) in properties panel/grid\n * name - tab category name\n * @see expandPropertyGridCategory\n */\n public expandPropertyTab(name: string): void {\n this.expandPropertyGridCategory(name);\n }\n /**\n * @Deprecated Obsolete. Collapse certain property editor tab (category) in properties panel/grid\n * name - tab category name\n * @see collapsePropertyGridCategory\n */\n public collapsePropertyTab(name: string): void {\n this.collapsePropertyGridCategory(name);\n }\n //#endregion Obsolete designerPropertyGrid\n\n /**\n * Check for errors in property grid and adorners of the selected elements.\n * Returns true if selected element is null or there is no errors.\n */\n public validateSelectedElement(): boolean {\n var isValid = true;\n if (!this.selectedElement) return isValid;\n if (!!this.designerPropertyGrid) {\n isValid = this.designerPropertyGrid.validate();\n }\n /*\n var options = { errors: [] };\n this.onValidateSelectedElement.fire(this, options);\n return isValid && options.errors.length == 0;\n */\n return isValid;\n }\n /**\n * Deletes all custom translation strings for the passed locale from Survey Creator and from the generated survey JSON schema.\n * @param locale A locale code (for example, \"en\").\n */\n public deleteLocaleStrings(locale: string): void {\n const translation = new Translation(this.survey);\n translation.deleteLocaleStrings(locale);\n }\n private getPropertyGridExpandedCategory(): string {\n if (!this.designerPropertyGrid) return undefined;\n const panels = this.designerPropertyGrid.survey.getAllPanels();\n for (var i = 0; i < panels.length; i++) {\n if ((<PanelModel>panels[i]).isExpanded) return panels[i].name;\n }\n return \"\";\n }\n private expandCategoryIfNeeded(): void {\n const expandedTabName = settings.propertyGrid.defaultExpandedTabName;\n if (!!expandedTabName && !this.getPropertyGridExpandedCategory() && !this.survey.isEmpty) {\n const panel = <PanelModel>this.designerPropertyGrid.survey.getPanelByName(expandedTabName);\n if (!!panel) {\n panel.expand();\n }\n }\n }\n private selectionChanged(element: Base, propertyName?: string, focus = true) {\n this.survey.currentPage = this.getCurrentPageByElement(element);\n this.selectionHistoryController.onObjSelected(element);\n if (this.designerPropertyGrid) {\n this.designerPropertyGrid.obj = element;\n if (!propertyName) {\n propertyName = this.designerPropertyGrid.currentlySelectedProperty;\n }\n if (!!propertyName) {\n this.designerPropertyGrid.selectProperty(propertyName, focus || !this.selectFromStringEditor);\n }\n this.expandCategoryIfNeeded();\n this.selectFromStringEditor = false;\n }\n var options = { newSelectedElement: element };\n this.onSelectedElementChanged.fire(this, options);\n }\n private getCurrentPageByElement(element: Base): PageModel {\n if (!element) return undefined;\n if (element[\"isPage\"]) return element as PageModel;\n if (!!element[\"page\"]) return element[\"page\"];\n if (!!element[\"parentQuestion\"]) return this.getCurrentPageByElement(element[\"parentQuestion\"]);\n return undefined;\n }\n public clickToolboxItem(newElement: any, panel: IPanel = null, modifiedType: string = \"ADDED_FROM_TOOLBOX\") {\n if (!this.readOnly) {\n if (newElement[\"getType\"] === undefined) {\n newElement = this.createNewElement(newElement);\n }\n this.survey.lazyRendering = false;\n this.doClickQuestionCore(newElement, modifiedType, -1, panel);\n this.selectElement(newElement, null, true, true);\n }\n }\n public getJSONForNewElement(json: any): any {\n var newElement: Base = <any>this.createNewElement(json);\n json = newElement.toJSON();\n json[\"type\"] = newElement.getType();\n return json;\n }\n /**\n * Open file chooser dialog\n * @param input file input element\n * @param onFilesChosen a call back function to process chosen files\n */\n public chooseFiles(\n input: HTMLInputElement,\n onFilesChosen: (files: File[]) => void\n ) {\n if (this.onOpenFileChooser.isEmpty) {\n if (!window || !window[\"FileReader\"]) return;\n input.value = \"\";\n input.onchange = (event) => {\n if (!window[\"FileReader\"]) return;\n if (!input || !input.files || input.files.length < 1) return;\n let files = [];\n for (let i = 0; i < input.files.length; i++) {\n files.push(input.files[i]);\n }\n onFilesChosen(files);\n };\n input.click();\n } else {\n this.onOpenFileChooser.fire(this, {\n input: input,\n callback: onFilesChosen\n });\n }\n }\n /**\n * Upload the files on a server\n * @param files files to upload\n * @param uploadingCallback a call back function to get the status on uploading the file and operation result - URI of the uploaded file\n */\n public uploadFiles(\n files: File[],\n question: Question,\n uploadingCallback: (status: string, data: any) => any\n ) {\n if (this.onUploadFile.isEmpty) {\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n uploadingCallback(\"success\", fileReader.result);\n };\n fileReader.readAsDataURL(files[0]);\n } else {\n this.onUploadFile.fire(this, {\n question: question,\n files: files || [],\n callback: uploadingCallback\n });\n }\n }\n\n public initKeyboardShortcuts(rootNode: HTMLElement) {\n if (!!rootNode) {\n rootNode.addEventListener(\"keydown\", this.onKeyDownHandler);\n }\n }\n public removeKeyboardShortcuts(rootNode: HTMLElement) {\n if (!!rootNode) {\n rootNode.removeEventListener(\"keydown\", this.onKeyDownHandler);\n }\n }\n protected onKeyDownHandler = (event: KeyboardEvent) => {\n let shortcut;\n let hotKey;\n Object.keys(this.shortcuts || {}).forEach((key) => {\n shortcut = this.shortcuts[key];\n hotKey = event.metaKey ? shortcut.macOsHotkey : shortcut.hotKey;\n if (!hotKey) return;\n\n if (!!hotKey.ctrlKey !== !!event.ctrlKey) return;\n if (!!hotKey.shiftKey !== !!event.shiftKey) return;\n if (hotKey.keyCode !== event.keyCode) return;\n if (hotKey.keyCode < 48 && isTextInput(event.target)) return;\n shortcut.execute(this.selectElement);\n });\n }\n private shortcuts: { [index: string]: IKeyboardShortcut } = {};\n public registerShortcut(name: string, shortcut: IKeyboardShortcut) {\n this.shortcuts[name] = shortcut;\n }\n public unRegisterShortcut(name: string) {\n delete this.shortcuts[name];\n }\n\n protected deletePanelOrQuestion(obj: Base): void {\n var parent = obj[\"parent\"];\n var elements = parent.elements;\n var objIndex = elements.indexOf(obj);\n if (objIndex == elements.length - 1) {\n objIndex--;\n }\n if (this.pageEditMode === \"single\" && parent.getType() === \"page\") {\n parent = this.survey;\n }\n obj[\"delete\"]();\n this.selectElement(objIndex > -1 ? elements[objIndex] : parent);\n }\n protected onCanShowObjectProperty(\n object: any,\n property: JsonObjectProperty,\n showMode: string,\n parentObj: any,\n parentProperty: JsonObjectProperty\n ): boolean {\n var options = {\n obj: object,\n property: property,\n canShow: true,\n showMode: showMode,\n parentObj: parentObj,\n parentProperty: parentProperty\n };\n this.onCanShowProperty.fire(this, options);\n return options.canShow;\n }\n protected canDeleteItem(\n object: any,\n item: Base,\n allowDelete: boolean\n ): boolean {\n var options = { obj: object, item: item, canDelete: allowDelete };\n this.onCanDeleteItem.fire(this, options);\n return options.canDelete;\n }\n private getErrorOnPropertyChanging(\n obj: Base,\n propertyName: string,\n value: any\n ): string {\n if (propertyName !== \"name\") return null;\n if (SurveyHelper.getObjectType(obj) === ObjType.Unknown) return null;\n var hasError = false;\n if (SurveyHelper.getObjectType(obj) === ObjType.Column) {\n hasError = !!(<any>obj).colOwner\n ? !this.isNameUniqueInArray((<any>obj).colOwner.columns, obj, value)\n : false;\n } else {\n hasError = this.generateUniqueName(obj, value) !== value;\n }\n\n return hasError ? this.getLocString(\"pe.propertyNameIsNotUnique\") : null;\n }\n protected generateUniqueName(el: Base, newName: string): string {\n var options = { element: el, name: newName, isUnique: true };\n do {\n if (!options.isUnique) {\n options.name = SurveyHelper.generateNewName(options.name);\n }\n while (!this.isNameUnique(el, options.name)) {\n options.name = SurveyHelper.generateNewName(options.name);\n }\n options.isUnique = true;\n var oldName = options.name;\n this.onGenerateNewName.fire(this, options);\n if (oldName != options.name) {\n options.isUnique = this.isNameUnique(el, options.name);\n }\n } while (!options.isUnique);\n return options.name;\n }\n protected isNameUnique(el: Base, newName: string): boolean {\n if (!this.isNameUniqueInArray(this.survey.pages, el, newName)) return false;\n if (!this.isNameUniqueInArray(this.survey.getAllPanels(), el, newName))\n return false;\n return this.isNameUniqueInArray(this.survey.getAllQuestions(), el, newName);\n }\n private isNameUniqueInArray(\n elements: Array<any>,\n el: Base,\n newName: string\n ): boolean {\n if (!Array.isArray(elements)) return true;\n newName = newName.toLowerCase();\n for (var i = 0; i < elements.length; i++) {\n if (elements[i] != el && elements[i].name.toLowerCase() == newName)\n return false;\n }\n return true;\n }\n protected doPropertyGridChanged() { }\n\n //implements ISurveyCreatorOptions\n get alwaySaveTextInPropertyEditors(): boolean {\n return this.alwaySaveTextInPropertyEditorsValue;\n }\n set alwaySaveTextInPropertyEditors(value: boolean) {\n this.alwaySaveTextInPropertyEditorsValue = value;\n }\n onCanShowPropertyCallback(\n object: any,\n property: JsonObjectProperty,\n showMode: string = null,\n parentObj: any,\n parentProperty: JsonObjectProperty\n ): boolean {\n return this.onCanShowObjectProperty(\n object,\n property,\n showMode,\n parentObj,\n parentProperty\n );\n }\n onPropertyGridSurveyCreatedCallback(\n object: any,\n survey: SurveyModel\n ) {\n const options = { obj: object, survey: survey };\n this.onPropertyGridSurveyCreated.fire(this, options);\n }\n onPropertyEditorCreatedCallback(\n object: any,\n property: JsonObjectProperty,\n editor: Question\n ): void {\n const options = { obj: object, property: property, editor: editor };\n this.onPropertyEditorCreated.fire(this, options);\n }\n onPropertyEditorUpdateTitleActionsCallback(\n object: any,\n property: JsonObjectProperty,\n editor: Question,\n titleActions: IAction[]\n ): void {\n const options = { obj: object, property: property, editor: editor, titleActions: titleActions };\n this.onPropertyEditorUpdateTitleActions.fire(this, options);\n }\n onPropertyGridShowModalCallback(object: any,\n property: JsonObjectProperty,\n editor: Question,\n popupEditor: any,\n popupModel: PopupBaseViewModel): void {\n const options = { obj: object, property: property, editor: editor, popupEditor: popupEditor, popupModel: popupModel };\n this.onPropertyGridShowModal.fire(this, options);\n }\n onCanDeleteItemCallback(\n object: any,\n item: Base,\n allowDelete: boolean\n ): boolean {\n return this.canDeleteItem(object, item, allowDelete);\n }\n onCollectionItemDeletingCallback(\n obj: Base,\n property: JsonObjectProperty,\n collection: Array<Base>,\n item: Base\n ): boolean {\n if (this.onCollectionItemDeleting.isEmpty) return true;\n var options = {\n obj: obj,\n property: property,\n propertyName: property.name,\n collection: collection,\n item: item,\n allowDelete: true\n };\n this.onCollectionItemDeleting.fire(this, options);\n return options.allowDelete;\n }\n onCollectionItemAllowingCallback(\n obj: Base,\n property: JsonObjectProperty,\n collection: Array<Base>,\n item: Base,\n itemOptions: ICollectionItemAllowOperations\n ): void {\n if (this.onCollectionItemAllowOperations.isEmpty) return;\n var options = {\n obj: obj,\n property: property,\n propertyName: property && property.name,\n collection: collection,\n item: item,\n allowEdit: itemOptions.allowEdit,\n allowDelete: itemOptions.allowDelete\n };\n this.onCollectionItemAllowOperations.fire(this, options);\n itemOptions.allowEdit = options.allowEdit;\n itemOptions.allowDelete = options.allowDelete;\n }\n onItemValueAddedCallback(\n obj: Base,\n propertyName: string,\n itemValue: Survey.ItemValue,\n itemValues: Array<Survey.ItemValue>\n ) {\n var options = {\n obj: obj,\n propertyName: propertyName,\n newItem: itemValue,\n itemValues: itemValues\n };\n this.onItemValueAdded.fire(this, options);\n }\n onMatrixDropdownColumnAddedCallback(\n matrix: Survey.Question,\n column: Survey.MatrixDropdownColumn,\n columns: Array<Survey.MatrixDropdownColumn>\n ) {\n var options = { newColumn: column, matrix: matrix, columns: columns };\n this.onMatrixColumnAdded.fire(this, options);\n }\n onSetPropertyEditorOptionsCallback(\n propertyName: string,\n obj: Base,\n editorOptions: any\n ) {\n var options = {\n propertyName: propertyName,\n obj: obj,\n editorOptions: editorOptions\n };\n this.onSetPropertyEditorOptions.fire(this, options);\n }\n onGetErrorTextOnValidationCallback(\n propertyName: string,\n obj: Base,\n value: any\n ): string {\n var error = this.getErrorOnPropertyChanging(obj, propertyName, value);\n if (!!error) return error;\n var options = {\n propertyName: propertyName,\n obj: obj,\n value: value,\n error: \"\"\n };\n this.onPropertyValidationCustomError.fire(this, options);\n return options.error;\n }\n onValueChangingCallback(options: any) {\n this.onPropertyValueChanging.fire(this, options);\n }\n onGetElementEditorTitleCallback(obj: Base, title: string): string {\n return title;\n }\n onConditionQuestionsGetListCallback(\n propertyName: string,\n obj: Base,\n editor: any,\n list: any[]\n ): string {\n if (this.onConditionQuestionsGetList.isEmpty) return \"asc\";\n var options = {\n propertyName: propertyName,\n obj: obj,\n editor: editor,\n sortOrder: \"asc\",\n list: list\n };\n this.onConditionQuestionsGetList.fire(this, options);\n if (options.list !== list) {\n list.splice(0, list.length);\n for (var i = 0; i < options.list.length; i++) {\n list.push(options.list[i]);\n }\n }\n return options.sortOrder;\n }\n onConditionGetTitleCallback(\n expression: string,\n title: string\n ): string {\n var options = {\n expression: expression,\n title: title,\n };\n this.onConditionGetTitle.fire(this, options);\n return options.title;\n }\n onLogicGetTitleCallback(\n expression: string,\n expressionText: string,\n text: string,\n logicItem: any\n ): string {\n if (this.onLogicItemDisplayText.isEmpty) return text;\n var options = {\n expression: expression,\n expressionText: expressionText,\n text: text,\n logicItem: logicItem\n };\n this.onLogicItemDisplayText.fire(this, options);\n return options.text;\n }\n getProcessedTranslationItemText(locale: string, locString: ILocalizableString, newText: string, obj: any): string {\n if (this.onTranslationItemChanging.isEmpty) return newText;\n const options = {\n locale: locale,\n obj: obj,\n locString: locString,\n newText: newText\n };\n this.onTranslationItemChanging.fire(this, options);\n return options.newText;\n }\n getTranslationExportedText(obj: Base, name: string, locString: ILocalizableString, locale: string, text: string): string {\n if (this.onTranslationExportItem.isEmpty) return text;\n const options = {\n obj: obj,\n locString: locString,\n locale: locale,\n text: text\n };\n this.onTranslationExportItem.fire(this, options);\n return options.text;\n }\n /**\n * The delay on saving survey JSON on autoSave in ms. It is 500 ms by default.\n * If during this period of time an end-user modify survey, then the last version will be saved only. Set to 0 to save immediately.\n * @see isAutoSave\n */\n public autoSaveDelay: number = settings.autoSave.delay;\n private autoSaveTimerId = null;\n protected doAutoSave() {\n if (this.autoSaveDelay <= 0) {\n this.doSave();\n return;\n }\n if (!!this.autoSaveTimerId) {\n clearTimeout(this.autoSaveTimerId);\n }\n var self = this;\n this.autoSaveTimerId = setTimeout(function () {\n clearTimeout(self.autoSaveTimerId);\n self.autoSaveTimerId = null;\n self.doSave();\n }, this.autoSaveDelay);\n }\n saveNo: number = 0;\n public doSave() {\n this.setState(\"saving\");\n if (this.saveSurveyFunc) {\n this.saveNo++;\n this.saveSurveyFunc(this.saveNo, (no: number, isSuccess: boolean) => {\n if (this.saveNo !== no) return;\n if (isSuccess) {\n this.setState(\"saved\");\n } else {\n this.setState(\"modified\");\n if (this.showErrorOnFailedSave) {\n this.notify(this.getLocString(\"ed.saveError\"), \"error\");\n }\n }\n });\n }\n }\n\n @property({ defaultValue: false }) showSaveButton: boolean;\n\n /**\n * Assign to this property a function that will be called on clicking the 'Save' button or on any change if isAutoSave equals true.\n * @see isAutoSave\n */\n public get saveSurveyFunc() {\n return this.saveSurveyFuncValue;\n }\n public set saveSurveyFunc(value: any) {\n this.saveSurveyFuncValue = value;\n this.showSaveButton = value != null && !this.isAutoSave;\n }\n @undoRedoTransaction()\n public convertCurrentQuestion(newType: string) {\n var el = this.selectedElement;\n if (!el || el.getType() === newType) return;\n const objType = SurveyHelper.getObjectType(el);\n if (objType !== ObjType.Question && objType !== ObjType.Panel) return;\n el = this.convertQuestion(<Survey.Question>el, newType);\n this.selectElement(el, null, \"#convertTo button\");\n }\n\n public getAddNewQuestionText(currentAddQuestionType: string = null) {\n if (!currentAddQuestionType)\n currentAddQuestionType = this.currentAddQuestionType;\n if (!!currentAddQuestionType) {\n const str = this.getLocString(\"ed.addNewTypeQuestion\");\n if (!!str && !!str[\"format\"])\n return str[\"format\"](\n this.toolbox.items.filter((item) => item.name == currentAddQuestionType)[0].title\n );\n }\n return this.getLocString(\"ed.addNewQuestion\");\n }\n\n public get addNewQuestionText() {\n return this.getAddNewQuestionText();\n }\n\n public getQuestionTypeSelectorModel(beforeAdd: (type: string) => void, panel: IPanel = null) {\n var availableTypes = this.toolbox.items.map((item) => {\n return this.createIActionBarItemByClass(item.name, item.title, item.iconName, item.needSeparator);\n });\n const listModel = new ListModel(\n availableTypes,\n (item: any) => {\n this.currentAddQuestionType = item.id;\n this.addNewQuestionInPage(beforeAdd, panel);\n popupModel.toggleVisibility();\n },\n false\n );\n listModel.locOwner = this;\n const popupModel = new PopupModel(\n \"sv-list\", { model: listModel },\n \"bottom\",\n \"center\"\n );\n\n return <any>{\n iconName: \"icon-more\",\n title: this.getLocString(\"ed.addNewQuestion\"),\n action: () => {\n popupModel.displayMode = this.isMobileView ? \"overlay\" : \"popup\";\n popupModel.toggleVisibility();\n },\n popupModel: popupModel\n };\n }\n @undoRedoTransaction()\n public addNewQuestionInPage(beforeAdd: (string) => void, panel: IPanel = null, type: string = null) {\n if (!type)\n type = this.currentAddQuestionType;\n if (!type) type = settings.designer.defaultAddQuestionType;\n beforeAdd(type);\n let json = { type: type };\n const toolboxItem = this.toolbox.getItemByName(type);\n if (!!toolboxItem && !!toolboxItem.json) {\n json = toolboxItem.json;\n }\n let newElement = this.createNewElement(json);\n this.clickToolboxItem(newElement, panel, \"ADDED_FROM_PAGEBUTTON\");\n }\n createIActionBarItemByClass(className: string, title: string, iconName: string, needSeparator: boolean): Action {\n const action = new Action({\n title: title,\n id: className,\n iconName: iconName\n });\n action.needSeparator = needSeparator;\n return action;\n }\n\n public onElementMenuItemsChanged(element: any, items: Action[]) {\n this.onDefineElementMenuItems.fire(this, {\n obj: element,\n items: items\n });\n }\n public getElementAllowOperations(element: SurveyElement): any {\n var options = {\n obj: element,\n element: element,\n allowDelete: true,\n allowCopy: true,\n allowDragging: true,\n allowChangeType: true,\n allowChangeRequired: true,\n allowEdit: undefined\n };\n this.onElementAllowOperations.fire(this, options);\n return options;\n }\n\n public getChoicesItemBaseTitle() {\n return this.getLocString(\"ed.choices_Item\") || Survey.surveyLocalization.getString(\"choices_Item\");\n }\n\n public getNextItemValue(question: QuestionSelectBase): string | number {\n const itemText = this.getChoicesItemBaseTitle();\n return getNextItemValue(itemText, question.choices);\n }\n public createNewItemValue(question: QuestionSelectBase): ItemValue {\n const nextValue = this.getNextItemValue(question);\n const res = question.createItemValue(nextValue);\n res.text = getNextItemText(question.choices);\n return res;\n }\n protected onPropertyValueChanged(name: string, oldValue: any, newValue: any) {\n super.onPropertyValueChanged(name, oldValue, newValue);\n if (name === \"viewType\") {\n this.tabs.forEach((tab) => {\n const isActive = this.viewType === tab.id;\n tab.active = isActive;\n tab.disableHide = isActive;\n });\n }\n }\n public initResponsivityManager(container: HTMLDivElement): void {\n this.responsivityManager = new CreatorResponsivityManager(container, this);\n }\n public resetResponsivityManager(): void {\n if (!!this.responsivityManager) {\n this.responsivityManager.dispose();\n this.responsivityManager = undefined;\n }\n }\n @property({ defaultValue: false }) showHeaderInEmptySurvey;\n @property({ defaultValue: true }) showPageNavigator;\n @property({ getDefaultValue: () => { return settings.layout.showTabs; } }) showTabs;\n @property({ getDefaultValue: () => { return settings.layout.showToolbar; } }) showToolbar;\n @property({ getDefaultValue: () => { return settings.layout.allowCollapseSidebar; } }) allowCollapseSidebar;\n @property({ defaultValue: false }) isMobileView;\n @property({\n defaultValue: \"left\", onSet: (newValue, target: CreatorBase) => {\n if (!target.toolbox) return;\n target.toolbox.setLocation(newValue);\n target.updateToolboxIsCompact();\n }\n }) toolboxLocation: toolboxLocationType;\n @property({ defaultValue: \"right\" }) sidebarLocation: \"left\" | \"right\";\n selectFromStringEditor: boolean;\n\n @property({\n defaultValue: false, onSet: (newValue: boolean, target: CreatorBase) => {\n if (!newValue) {\n throw new Error(\"Creator is disposed\");\n }\n }\n }) isCreatorDisposed: boolean;\n\n dispose(): void {\n this.isCreatorDisposed = true;\n this.tabs = [];\n Object.keys(this.plugins).forEach(pluginName => {\n const plugin = this.plugins[pluginName];\n if (typeof plugin.deactivate === \"function\") {\n plugin.deactivate();\n }\n if (typeof plugin.dispose === \"function\") {\n plugin.dispose();\n }\n });\n super.dispose();\n }\n}\nexport class SurveyCreatorModel extends CreatorBase { }\n\nexport class StylesManager {\n public static get currentTheme(): string {\n SurveyHelper.warnNonSupported(\"StylesManager\");\n return undefined;\n }\n public static set currentTheme(val: string) {\n SurveyHelper.warnNonSupported(\"StylesManager\");\n }\n public static applyTheme(name?: string) {\n SurveyHelper.warnNonSupported(\"StylesManager\");\n }\n}\n\nexport function initializeDesignTimeSurveyModel(model: any, creator: CreatorBase) {\n model.creator = creator;\n model.isPopupEditorContent = false;\n\n const getElementWrapperComponentNamePrev = model.getElementWrapperComponentName;\n model.getElementWrapperComponentName = (element: any, reason?: string): string => {\n let componentName = getElementWrapperComponentName(\n element,\n reason,\n model.isPopupEditorContent\n );\n\n return componentName || getElementWrapperComponentNamePrev.call(model, element, reason);\n };\n\n const getQuestionContentWrapperComponentNamePrev = model.getQuestionContentWrapperComponentName;\n model.getQuestionContentWrapperComponentName = (element: any, reason?: string): string => {\n let componentName = getQuestionContentWrapperComponentName(element);\n return (\n componentName || getQuestionContentWrapperComponentNamePrev.call(model, element, reason)\n );\n };\n\n const getElementWrapperComponentDataPrev = model.getElementWrapperComponentData;\n model.getElementWrapperComponentData = (element: any, reason?: string): any => {\n const data = getElementWrapperComponentData(element, reason, creator);\n\n return data || getElementWrapperComponentDataPrev.call(model, element, reason);\n };\n\n model.getRowWrapperComponentName = (row: QuestionRowModel): string => {\n return \"svc-row\";\n };\n\n model.getRowWrapperComponentData = (row: QuestionRowModel): any => {\n return {\n creator: creator,\n row\n };\n };\n\n model.getItemValueWrapperComponentName = (item: ItemValue, question: QuestionSelectBase): string => {\n return getItemValueWrapperComponentName(item, question);\n };\n\n model.getItemValueWrapperComponentData = (item: ItemValue, question: QuestionSelectBase): any => {\n return getItemValueWrapperComponentData(item, question, creator);\n };\n\n model.getRendererForString = (element: Base, name: string): string => {\n if (!creator.readOnly && isStringEditable(element, name)) {\n return editableStringRendererName;\n }\n return undefined;\n };\n\n model.getRendererContextForString = (element: Base, locStr: LocalizableString): any => {\n if (!creator.readOnly && isStringEditable(element, locStr.name)) {\n return {\n creator: creator,\n element,\n locStr\n };\n }\n return <any>locStr;\n };\n}\n\nfunction isContentElement(element: any) {\n let current = element;\n while (!!current) {\n if (current.isContentElement) {\n return true;\n }\n current = current.parentQuestion;\n }\n return false;\n}\n\nexport const editableStringRendererName = \"svc-string-editor\";\nexport function getElementWrapperComponentName(element: any, reason: string, isPopupEditorContent: boolean): string {\n if (reason === \"logo-image\") {\n return \"svc-logo-image\";\n }\n if (reason === \"cell\" || reason === \"column-header\" || reason === \"row-header\") {\n return \"svc-matrix-cell\";\n }\n if (!isContentElement(element)) {\n if (element instanceof Question) {\n const isDropdown = element.isDescendantOf(\"dropdown\") || element.isDescendantOf(\"tagbox\");\n if (isPopupEditorContent) {\n return isDropdown ? \"svc-cell-dropdown-question\" : \"svc-cell-question\";\n }\n if (element.customWidget) {\n return \"svc-widget-question\";\n }\n if (isDropdown) {\n return \"svc-dropdown-question\";\n }\n if (element.isDescendantOf(\"image\")) {\n return \"svc-image-question\";\n }\n return \"svc-question\";\n }\n if (element instanceof PanelModel) {\n return \"svc-panel\";\n }\n }\n return undefined;\n}\nexport function getQuestionContentWrapperComponentName(element) {\n if (element.isDescendantOf(\"rating\") && !isContentElement(element)) {\n return \"svc-rating-question-content\";\n }\n return undefined;\n}\nexport function getElementWrapperComponentData(\n element: any,\n reason: string,\n creator: CreatorBase\n): any {\n if (reason === \"logo-image\") return creator;\n if (\n reason === \"cell\" ||\n reason === \"column-header\" ||\n reason === \"row-header\"\n ) {\n return {\n creator: creator,\n element: element,\n question: element.question,\n row: element.row,\n column: element.column\n };\n }\n const hasWrapper = getElementWrapperComponentName(element, reason, false);\n if (!hasWrapper) return undefined;\n if (element instanceof Question)\n return creator;\n if (element instanceof PanelModel)\n return creator;\n return null;\n}\nexport function getItemValueWrapperComponentName(\n item: ItemValue,\n question: QuestionSelectBase\n): string {\n if (isContentElement(question)) {\n return SurveyModel.TemplateRendererComponentName;\n }\n if (question.isDescendantOf(\"imagepicker\")) {\n return \"svc-image-item-value\";\n }\n return \"svc-item-value\";\n}\nexport function getItemValueWrapperComponentData(\n item: ItemValue,\n question: QuestionSelectBase,\n creator: CreatorBase\n): any {\n if (question.isContentElement) {\n return item;\n }\n return {\n creator: creator,\n question,\n item\n };\n}\nexport function isStringEditable(element: any, name: string): boolean {\n const parentIsMatrix = !!element.data && element.parentQuestion instanceof Survey.QuestionMatrixDropdownModelBase;\n return !parentIsMatrix && (!isContentElement(element) || element.isEditableTemplateElement);\n}\nexport function isTextInput(target: any): boolean {\n if (!target.tagName) return false;\n const tagName = target.tagName.toLowerCase();\n if ([\"input\", \"textarea\"].indexOf(tagName) !== -1) return true;\n if ([\"span\", \"div\"].indexOf(tagName) !== -1) {\n return target.isContentEditable;\n }\n return false;\n}\n\nexport function registerAdorner(name, adorner) {\n SurveyHelper.warnNonSupported(\"registerAdorner\", \"This functionality is no longer supported.\");\n}\nexport function removeAdorners(names: string[] = undefined) {\n SurveyHelper.warnNonSupported(\"removeAdorners\", \"This functionality is no longer supported.\");\n}\n","import { CreatorBase } from \"./creator-base\";\nrequire(\"./responsivity.scss\");\nexport class CreatorResponsivityManager {\n private resizeObserver: ResizeObserver = undefined;\n private currentWidth;\n private prevShowToolbox;\n private prevShowPageNavigator;\n public static screenSizeBreakpoints: { [key: string]: number } = {\n \"xxl\": 1800,\n \"xl\": 1500,\n \"l\": 1200,\n \"m\": 900,\n \"s\": 600,\n }\n private getScreenWidth(): string {\n let res;\n Object.keys(CreatorResponsivityManager.screenSizeBreakpoints).forEach((mode: string) => {\n const breakpoint = CreatorResponsivityManager.screenSizeBreakpoints[mode];\n if (!res && this.container && !!breakpoint && this.container.offsetWidth >= breakpoint) {\n res = mode;\n }\n });\n return res || \"xs\";\n }\n private initMobileView() {\n this.creator.showTabs = false;\n this.creator.showToolbar = false;\n this.creator.isMobileView = true;\n }\n private resetMobileView() {\n this.creator.showTabs = undefined;\n this.creator.showToolbar = undefined;\n this.creator.isMobileView = undefined;\n }\n private procesShowToolbox(toolboxVisible: boolean) {\n if (toolboxVisible && !this.creator.showToolbox && this.prevShowToolbox !== undefined) {\n this.creator.showToolbox = this.prevShowToolbox;\n this.prevShowToolbox = undefined;\n } else if (!toolboxVisible && this.creator.showToolbox && this.prevShowToolbox === undefined) {\n this.prevShowToolbox = this.creator.showToolbox;\n this.creator.showToolbox = false;\n }\n }\n private procesShowPageNavigator(pageNavigatorVisibility: boolean) {\n if (this.creator.pageEditMode === \"bypage\") {\n this.creator.showPageNavigator = true;\n return;\n }\n if (pageNavigatorVisibility && !this.creator.showPageNavigator && this.prevShowPageNavigator !== undefined) {\n this.creator.showPageNavigator = this.prevShowPageNavigator;\n this.prevShowPageNavigator = undefined;\n } else if (!pageNavigatorVisibility && this.creator.showPageNavigator && this.prevShowPageNavigator === undefined) {\n this.prevShowPageNavigator = this.creator.showPageNavigator;\n this.creator.showPageNavigator = false;\n }\n }\n\n private findCorrectParent(container: HTMLElement) {\n if (!!window?.getComputedStyle) {\n if (window.getComputedStyle(container.parentElement).display === \"inline\") {\n return this.findCorrectParent(container.parentElement);\n }\n }\n return container.parentElement;\n }\n\n constructor(protected container: HTMLDivElement, private creator: CreatorBase) {\n if (typeof ResizeObserver !== \"undefined\") {\n this.resizeObserver = new ResizeObserver((_) => this.process());\n this.resizeObserver.observe(this.findCorrectParent(this.container));\n this.process();\n if (this.currentWidth == \"xs\" || this.currentWidth == \"s\" || this.currentWidth === \"m\") {\n this.creator.setShowSidebar(false);\n }\n }\n }\n\n private _process(toolboxIsCompact: boolean, toolboxVisible: boolean, flyoutSidebar: boolean) {\n this.creator.updateToolboxIsCompact(toolboxIsCompact);\n this.procesShowToolbox(toolboxVisible);\n this.procesShowPageNavigator(toolboxVisible);\n this.creator.sidebar.flyoutMode = flyoutSidebar;\n\n if (this.creator.sidebar.visible && !flyoutSidebar) {\n this.creator.sidebar.collapsedManually = false;\n }\n if (this.creator.sidebar.visible && !this.creator.sidebar.expandedManually && flyoutSidebar && this.creator.toolboxLocation != \"right\") {\n this.creator.sidebar.collapseSidebar();\n }\n if (!this.creator.sidebar.visible && !this.creator.sidebar.collapsedManually && !flyoutSidebar && this.creator.toolboxLocation != \"right\") {\n this.creator.sidebar.expandSidebar();\n }\n\n }\n process() {\n this.currentWidth = this.getScreenWidth();\n if (this.currentWidth === \"xl\" || this.currentWidth === \"xxl\") {\n this._process(false, true, false);\n } else if (this.currentWidth === \"l\") {\n this._process(true, true, false);\n } else if (this.currentWidth === \"m\") {\n this._process(true, true, true);\n } else {\n this._process(true, false, true);\n }\n\n if (this.currentWidth == \"xs\") {\n this.initMobileView();\n } else {\n this.resetMobileView();\n }\n }\n\n public dispose(): void {\n if (!!this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n}\n","import {\n StylesManager, Base, IAction, ItemValue,\n JsonObjectProperty, MatrixDropdownColumn, Question,\n SurveyModel, ILocalizableString, PopupBaseViewModel\n} from \"survey-core\";\n\n/**\n * List available question convert modes\n */\nexport enum QuestionConvertMode {\n AllTypes,\n CompatibleTypes\n}\nexport var settings = {\n translation: {\n sortByName: false,\n //Set it to \\xef\\xbb\\xbf; to tell system that it is UTF8 file. You can use other prefix as well\n exportPrefix: \"\",\n /**\n * The maximum number of locales that user can select at once for translation\n */\n maximumSelectedLocales: 7,\n /**\n * The name of the translation export file in csv format\n */\n exportFileName: \"survey_translation.csv\"\n },\n operators: {\n empty: [],\n notempty: [],\n equal: [\"!file\"],\n notequal: [\"!file\"],\n contains: [\"checkbox\", \"text\", \"comment\"],\n notcontains: [\"checkbox\", \"text\", \"comment\"],\n anyof: [\"selectbase\"],\n allof: [\"checkbox\"],\n greater: [\"!checkbox\", \"!imagepicker\", \"!boolean\", \"!file\"],\n less: [\"!checkbox\", \"!imagepicker\", \"!boolean\", \"!file\"],\n greaterorequal: [\"!checkbox\", \"!imagepicker\", \"!boolean\", \"!file\"],\n lessorequal: [\"!checkbox\", \"!imagepicker\", \"!boolean\", \"!file\"]\n },\n defaultNewSurveyJSON: {},\n designer: {\n /**\n * The default question type on clicking Add Question button.\n */\n defaultAddQuestionType: \"text\",\n /**\n * Set this property to false, to hide \"Add Question\" button on designer surface\n */\n showAddQuestionButton: true\n },\n logic: {\n defaultOperator: \"equal\",\n visibleActions: [],\n logicItemTitleMaxChars: 50,\n openBracket: \"{\",\n closeBracket: \"}\",\n /**\n * Set these properties to false if you don't want to update expressions on changing question and column names and on changing choices values\n */\n updateExpressionsOnChanging: {\n questionName: true,\n columnName: true,\n choiceValue: true\n }\n },\n /**\n * Determines which types of questions the conversion will be available for.\n */\n questionConvertMode: QuestionConvertMode.AllTypes,\n propertyGrid: {\n useButtonGroup: true,\n maxCharsInButtonGroup: 25,\n showNavigationButtons: false,\n maximumColumnsCount: 0,\n maximumChoicesCount: 0,\n maximumRowsCount: 0,\n maximumRateValues: 0,\n generalTabName: \"general\",\n defaultExpandedTabName: \"general\"\n },\n toolbox: {\n /**\n * Use it to change the default question JSON on dropping it into designer or converting questions\n */\n defaultJSON: {\n dropdown: {\n choices: [\"Item 1\", \"Item 2\", \"Item 3\"]\n },\n tagbox: {\n choices: [\"Item 1\", \"Item 2\", \"Item 3\"]\n },\n checkbox: {\n choices: [\"Item 1\", \"Item 2\", \"Item 3\"]\n },\n radiogroup: {\n choices: [\"Item 1\", \"Item 2\", \"Item 3\"]\n },\n ranking: {\n choices: [\"Item 1\", \"Item 2\", \"Item 3\"]\n },\n imagepicker: {\n choices: [\n {\n value: \"Image 1\",\n imageLink: \"https://surveyjs.io/Content/Images/examples/image-picker/lion.jpg\"\n },\n {\n value: \"Image 2\",\n imageLink: \"https://surveyjs.io/Content/Images/examples/image-picker/giraffe.jpg\"\n },\n {\n value: \"Image 3\",\n imageLink: \"https://surveyjs.io/Content/Images/examples/image-picker/panda.jpg\"\n },\n {\n value: \"Image 4\",\n imageLink: \"https://surveyjs.io/Content/Images/examples/image-picker/camel.jpg\"\n }\n ]\n },\n image: {\n imageLink: \"https://surveyjs.io/Content/Images/examples/image-picker/lion.jpg\"\n }\n }\n },\n /**\n * Notification settings\n */\n notifications: {\n lifetime: 2000\n },\n /**\n * Auto save parameters\n */\n autoSave: {\n delay: 500\n },\n /**\n * Drag Drop Settings\n */\n dragDrop: {\n restrictDragQuestionBetweenPages: false\n },\n /**\n * Creator layout settings\n */\n layout: {\n showTabs: true,\n showToolbar: true,\n allowCollapseSidebar: true\n },\n jsonEditor: {\n indentation: 1\n }\n};\nexport interface ICollectionItemAllowOperations {\n allowDelete: boolean;\n allowEdit: boolean;\n}\n\nexport interface ISurveyCreatorOptions {\n isMobileView: boolean;\n alwaySaveTextInPropertyEditors: boolean;\n readOnly: boolean;\n maxLogicItemsInCondition: number;\n showTitlesInExpressions: boolean;\n showObjectTitles: boolean;\n allowEditExpressionsInTextEditor: boolean;\n maximumColumnsCount: number;\n maximumChoicesCount: number;\n maximumRowsCount: number;\n maximumRateValues: number;\n getObjectDisplayName(obj: Base, area: string, reason: string, displayName: string): string;\n onCanShowPropertyCallback(\n object: any,\n property: JsonObjectProperty,\n showMode: string,\n parentObj: any,\n parentProperty: JsonObjectProperty\n ): boolean;\n onPropertyEditorCreatedCallback(\n object: any,\n property: JsonObjectProperty,\n editor: Question\n );\n onPropertyGridSurveyCreatedCallback(\n object: any,\n survey: SurveyModel\n );\n onPropertyEditorUpdateTitleActionsCallback(\n object: any,\n property: JsonObjectProperty,\n editor: Question,\n titleActions: IAction[]\n );\n onPropertyGridShowModalCallback(object: any,\n property: JsonObjectProperty,\n editor: Question,\n popupEditor: any,\n popupModel: PopupBaseViewModel);\n onIsPropertyReadOnlyCallback(\n obj: Base,\n property: JsonObjectProperty,\n readOnly: boolean,\n parentObj: Base,\n parentProperty: JsonObjectProperty\n ): boolean;\n onCanDeleteItemCallback(\n object: any,\n item: Base,\n allowDelete: boolean\n ): boolean;\n onCollectionItemDeletingCallback(\n obj: Base,\n property: JsonObjectProperty,\n collection: Array<Base>,\n item: Base\n ): boolean;\n onCollectionItemAllowingCallback(\n obj: Base,\n property: JsonObjectProperty,\n collection: Array<Base>,\n item: Base,\n options: ICollectionItemAllowOperations\n ): void;\n onItemValueAddedCallback(\n obj: Base,\n propertyName: string,\n itemValue: ItemValue,\n itemValues: Array<ItemValue>\n );\n onMatrixDropdownColumnAddedCallback(\n matrix: Question,\n column: MatrixDropdownColumn,\n columns: Array<MatrixDropdownColumn>\n );\n onSetPropertyEditorOptionsCallback(\n propertyName: string,\n obj: Base,\n editorOptions: any\n );\n onGetErrorTextOnValidationCallback(\n propertyName: string,\n obj: Base,\n value: any\n ): string;\n onValueChangingCallback(options: any);\n onGetElementEditorTitleCallback(obj: Base, title: string): string;\n startUndoRedoTransaction();\n stopUndoRedoTransaction();\n createSurvey(\n json: any,\n reason: string,\n surveyType?: new (json: any) => SurveyModel\n );\n onConditionQuestionsGetListCallback(\n propertyName: string,\n obj: Base,\n editor: any,\n list: any[]\n ): string;\n onConditionGetTitleCallback(\n expression: string,\n title: string\n ): string;\n onLogicGetTitleCallback(\n expression: string,\n displayExpression: string,\n text: string,\n logicItem: any\n ): string;\n getProcessedTranslationItemText(\n locale: string, locString: ILocalizableString, newText: string, obj: any\n ): string;\n getTranslationExportedText(obj: Base, name: string, locString: ILocalizableString, locale: string, text: string): string;\n}\n\nexport class EmptySurveyCreatorOptions implements ISurveyCreatorOptions {\n getProcessedTranslationItemText(locale: string, locString: ILocalizableString, newText: string, obj: any): string {\n return newText;\n }\n isMobileView: boolean = false;\n alwaySaveTextInPropertyEditors: boolean;\n readOnly: boolean;\n maxLogicItemsInCondition: number;\n showTitlesInExpressions: boolean;\n showObjectTitles: boolean;\n allowEditExpressionsInTextEditor: boolean = true;\n maximumColumnsCount: number = settings.propertyGrid.maximumColumnsCount;\n maximumChoicesCount: number = settings.propertyGrid.maximumChoicesCount;\n maximumRowsCount: number = settings.propertyGrid.maximumRowsCount;\n maximumRateValues: number = settings.propertyGrid.maximumRateValues;\n\n getObjectDisplayName(obj: Base, area: string, reason: string, displayName: string): string {\n return displayName;\n }\n onCanShowPropertyCallback(\n object: any,\n property: JsonObjectProperty,\n showMode: string,\n parentObj: any,\n parentProperty: JsonObjectProperty\n ): boolean {\n return true;\n }\n onPropertyGridSurveyCreatedCallback(\n object: any,\n survey: SurveyModel\n ) { }\n onPropertyEditorCreatedCallback(\n object: any,\n property: JsonObjectProperty,\n editor: Question\n ) { }\n onPropertyEditorUpdateTitleActionsCallback(\n object: any,\n property: JsonObjectProperty,\n editor: Question,\n titleActions: IAction[]\n ): void { }\n onPropertyGridShowModalCallback(object: any,\n property: JsonObjectProperty,\n editor: Question,\n popupEditor: any,\n popupModel: PopupBaseViewModel): void { }\n onIsPropertyReadOnlyCallback(\n obj: Base,\n property: JsonObjectProperty,\n readOnly: boolean,\n parentObj: Base,\n parentProperty: JsonObjectProperty\n ): boolean {\n return readOnly;\n }\n\n onCanDeleteItemCallback(\n object: any,\n item: Base,\n allowDelete: boolean\n ): boolean {\n return allowDelete;\n }\n onCollectionItemDeletingCallback(\n obj: Base,\n property: JsonObjectProperty,\n collection: Array<Base>,\n item: Base\n ): boolean {\n return true;\n }\n onCollectionItemAllowingCallback(\n obj: Base,\n property: JsonObjectProperty,\n collection: Array<Base>,\n item: Base,\n options: ICollectionItemAllowOperations\n ): void { }\n onItemValueAddedCallback(\n obj: Base,\n propertyName: string,\n itemValue: ItemValue,\n itemValues: Array<ItemValue>\n ) { }\n onMatrixDropdownColumnAddedCallback(\n matrix: Question,\n column: MatrixDropdownColumn,\n columns: Array<MatrixDropdownColumn>\n ) { }\n onSetPropertyEditorOptionsCallback(\n propertyName: string,\n obj: Base,\n editorOptions: any\n ) { }\n onGetErrorTextOnValidationCallback(\n propertyName: string,\n obj: Base,\n value: any\n ): string {\n return null;\n }\n onValueChangingCallback(options: any) { }\n onGetElementEditorTitleCallback(obj: Base, title: string): string {\n return title;\n }\n startUndoRedoTransaction() { }\n stopUndoRedoTransaction() { }\n createSurvey(\n json: any,\n reason: string,\n surveyType?: new (json: any) => SurveyModel\n ) {\n return new SurveyModel(json);\n }\n onConditionQuestionsGetListCallback(\n propertyName: string,\n obj: Base,\n editor: any,\n list: any[]\n ): string { return \"asc\"; }\n onConditionGetTitleCallback(\n expression: string,\n title: string\n ): string {\n return title;\n }\n onLogicGetTitleCallback(\n expression: string,\n displayExpression: string,\n text: string,\n logicItem: any\n ): string { return text; }\n getTranslationExportedText(obj: Base, name: string, locString: ILocalizableString, locale: string, text: string): string { return text; }\n}\n\nStylesManager.applyTheme(\"defaultV2\");","// extracted by mini-css-extract-plugin","import {\n Base,\n Helpers,\n JsonObject,\n MatrixDropdownColumn,\n Serializer,\n SurveyModel,\n} from \"survey-core\";\n\nexport class EditableObject {\n public static isCopyObject(obj: any): boolean {\n return !!obj && obj[\"isCopy\"];\n }\n public static getSurvey(object: any): SurveyModel {\n if (\n object instanceof SurveyModel ||\n (!!object && !!object.getType && object.getType() == \"survey\")\n ) {\n return EditableObject.getOriginalSurvey(object);\n }\n if (object instanceof MatrixDropdownColumn && !!object.colOwner)\n return object.colOwner[\"survey\"];\n if (!!object) {\n if (!!object.survey)\n return EditableObject.getOriginalSurvey(object.survey);\n if (!!object.owner) return EditableObject.getSurvey(object.owner);\n if (!!object.errorOwner)\n return EditableObject.getSurvey(object.errorOwner);\n if (!!object.locOwner) return EditableObject.getSurvey(object.locOwner);\n }\n var original = EditableObject.getOriginalObject(object);\n if (!!original && original !== object)\n return EditableObject.getSurvey(original);\n return null;\n }\n public static getOriginalObject(object: any): any {\n return !!object && !!object[\"originalObj\"] ? object[\"originalObj\"] : object;\n }\n public static getOriginalSurvey(survey: SurveyModel): SurveyModel {\n return EditableObject.getOriginalObject(survey);\n }\n\n private objValue: Base;\n private editableObjValue: Base;\n public constructor(obj: Base) {\n this.objValue = obj;\n this.editableObjValue = this.createEditableObj();\n }\n public get obj() {\n return this.objValue;\n }\n public get editableObj() {\n return this.editableObjValue;\n }\n public isPropertyChanged(propertyName: string): boolean {\n if (propertyName == \"pages\") return false; //TODO could not find a better way yet\n return !Helpers.isTwoValueEquals(\n this.obj[propertyName],\n this.editableObj[propertyName]\n );\n }\n public apply(propertyName: string) {\n if (!this.isPropertyChanged(propertyName)) return;\n this.obj[propertyName] = this.editableObj[propertyName];\n }\n public reset() {\n this.assignProperties(this.editableObj);\n }\n public applyAll(excludedProps: Array<string> = []) {\n var props = this.getProperties(excludedProps);\n for (var i = 0; i < props.length; i++) {\n this.apply(props[i]);\n }\n }\n private getProperties(excludedProps: Array<string>): Array<string> {\n var props = [];\n var newJSON = this.getObjJson(this.editableObj);\n var oldJSON = this.getObjJson(this.obj);\n for (var key in newJSON) {\n if (excludedProps.indexOf(key) > -1) continue;\n props.push(key);\n }\n for (var key in oldJSON) {\n if (excludedProps.indexOf(key) > -1 || props.indexOf(key) > -1) continue;\n props.push(key);\n }\n return props;\n }\n protected createEditableObj(): Base {\n var type = this.obj.getType();\n var res = <Base>Serializer.createClass(type);\n if (res == null && type == \"survey\") {\n res = new SurveyModel(); // TODO: Create Survey via platform Provider/Factory\n }\n this.assignProperties(res);\n if (type == \"matrixdropdowncolumn\") {\n res[\"colOwner\"] = this.obj[\"colOwner\"];\n }\n if (type != \"survey\") {\n if (!!res[\"setSurveyImpl\"]) {\n res[\"setSurveyImpl\"](this.obj[\"survey\"]);\n } else {\n if (!!this.obj[\"survey\"] && !res[\"survey\"]) {\n res[\"survey\"] = this.obj[\"survey\"];\n }\n }\n }\n if (!!this.obj[\"parent\"]) {\n res[\"parent\"] = this.obj[\"parent\"];\n }\n res[\"isCopy\"] = true;\n res[\"originalObj\"] = this.obj;\n return res;\n }\n private assignProperties(obj: any) {\n new JsonObject().toObject(this.getObjJson(), obj);\n }\n private getObjJson(obj: any = null): any {\n if (!obj) obj = this.obj;\n var jsonObj = new JsonObject();\n jsonObj.lightSerializing = true;\n return jsonObj.toJsonObject(obj);\n }\n}\n","import { enStrings } from \"./localization/english\";\nimport { capitalize } from \"./utils/utils\";\nimport { surveyLocalization, Serializer } from \"survey-core\";\n\nexport class EditorLocalization {\n public camelCaseBreaking = true;\n public currentLocale = \"\";\n public locales = {};\n private peByClass = {};\n private peHelpByClass = {};\n public reset() : void {\n this.peByClass = {};\n this.peHelpByClass = {};\n }\n public getString(strName: string, locale: string = null): string {\n var loc = this.getLocale(locale);\n var defaultLocale = this.getLocale(\"en\");\n var path = strName.split(\".\");\n var obj = loc;\n for (var i = 0; i < path.length; i++) {\n obj = obj[path[i]];\n if (!obj && obj !== \"\") {\n if (loc === defaultLocale) return path[i];\n return this.getString(strName, \"en\");\n }\n }\n return obj;\n }\n public hasString(strName: string, locale: string = null): boolean {\n var loc = this.getLocale(locale);\n var path = strName.split(\".\");\n var obj = loc;\n for (var i = 0; i < path.length; i++) {\n obj = obj[path[i]];\n if (!obj && obj !== \"\") return false;\n }\n return true;\n }\n public getLocaleName(loc: string, defaultLocale: string = null): string {\n let localeNames = surveyLocalization[\"localeNames\"];\n if (!defaultLocale) {\n defaultLocale = surveyLocalization.defaultLocale;\n }\n let res = !!loc\n ? capitalize(localeNames[loc])\n : editorLocalization\n .getString(\"ed.defaultLocale\")\n [\"format\"](capitalize(localeNames[defaultLocale]));\n return !!res ? res : loc;\n }\n public getPropertyName(strName: string, defaultName: string = null): string {\n var obj = this.getProperty(strName, defaultName);\n var name = obj[\"name\"];\n if (!!name) {\n if (name != strName) return name;\n return this.getAutoPropertyName(name, defaultName);\n }\n return obj;\n }\n public getPropertyTitle(strName: string): string {\n var obj = this.getProperty(strName);\n if (obj[\"title\"]) return obj[\"title\"];\n return \"\";\n }\n public getPropertyNameInEditor(typeName: string, propName: string, defaultName: string = null): string {\n let obj = this.getPropertyInfoInEditorByType(typeName, propName, this.peByClass, \"pe\");\n if(!obj) {\n obj = this.getString(\"pe.\" + propName);\n }\n if (obj !== propName) return obj;\n return this.getPropertyName(propName, defaultName);\n }\n public getPropertyHelpInEditor(typeName: string, propName: string, propType: string = undefined): string {\n let helpStr = this.getPropertyInfoInEditorByType(typeName, propName, this.peHelpByClass, \"pehelp\");\n if(!!helpStr) return (helpStr === \" \") ? null: helpStr;\n const loc = this.getLocale();\n if(!!loc && !!loc.pehelp) {\n helpStr = loc.pehelp[propName];\n }\n if(!!helpStr) return helpStr;\n if(!!propType && !!loc.pe) return loc.pe[propType + \"Help\"];\n return undefined;\n }\n private getPropertyInfoInEditorByType(typeName: string, propName: string, peInfoByClass: any, postFix: string): string {\n if(!typeName) return undefined;\n let peClass = peInfoByClass[typeName];\n if(peClass === undefined) {\n peClass = this.getObjInEditorByType(typeName, peInfoByClass, postFix);\n }\n while(!!peClass) {\n if(!!peClass.props[propName]) return peClass.props[propName];\n peClass = peClass.parent;\n }\n return undefined;\n }\n private getObjInEditorByType(typeName: string, peInfoByClass: any, postFix: string): any {\n if(!typeName) return undefined;\n const peClass = peInfoByClass[typeName];\n if(peClass !== undefined) peClass;\n const loc: any = this.getLocale();\n const pe = !!loc ? loc[postFix] : undefined;\n if(!pe) return undefined;\n let classInfo = Serializer.findClass(typeName);\n const classNames = [];\n let res = undefined;\n while(!!classInfo) {\n const tName = classInfo.name;\n res = peInfoByClass[typeName];\n if(!!res) break;\n classNames.push(tName);\n if(pe[tName]) {\n res = { props: pe[tName], parent: this.getObjInEditorByType(classInfo.parentName, peInfoByClass, postFix) };\n break;\n }\n if(!classInfo.parentName) break;\n classInfo = Serializer.findClass(classInfo.parentName);\n }\n for(var i = 0; i < classNames.length; i ++) {\n peInfoByClass[classNames[i]] = res;\n }\n return res;\n }\n public getProperty(strName: string, defaultName: string = null): string {\n var obj = this.getString(\"p.\" + strName);\n if (obj !== strName) return obj;\n var pos = strName.indexOf(\"_\");\n if (pos < -1) return this.getAutoPropertyName(obj, defaultName);\n strName = strName.substring(pos + 1);\n obj = this.getString(\"p.\" + strName);\n if (obj !== strName) return obj;\n return this.getAutoPropertyName(obj, defaultName);\n }\n public convertToCamelCase(value: string, toLowCase: boolean = false): string {\n if (!value) return value;\n value = value.trim();\n if(value.indexOf(\" \") > -1) return value;\n let hasLowCase = false;\n for (var i = 0; i < value.length; i++) {\n if(value[i] !== value[i].toUpperCase()) {\n hasLowCase = true;\n break;\n }\n }\n if(!hasLowCase) return value;\n let res = value[0].toUpperCase();\n let isPrevUpperCase = false;\n const isUpperCase = (index: number) : boolean => {\n if(index >= value.length) return false;\n return value[index].toUpperCase() === value[index];\n };\n for (var i = 1; i < value.length; i++) {\n if (!isPrevUpperCase && isUpperCase(i)) {\n res += \" \";\n }\n const requireConvert = !isPrevUpperCase && !isUpperCase(i + 1);\n res += requireConvert ? value[i].toLowerCase() : value[i];\n isPrevUpperCase = isUpperCase(i);\n }\n if (toLowCase) {\n res = res.toLowerCase();\n }\n return res;\n }\n private getAutoPropertyName(propName: string, defaultName: string = null): string {\n if (!!defaultName) return defaultName;\n if (!propName || !this.camelCaseBreaking) return propName;\n return this.convertToCamelCase(propName);\n }\n public getPropertyValueInEditor(propName: string, value: any): string {\n const loc = this.getLocale();\n if(!!loc && !!loc.pv && !!loc.pv[propName]) {\n const res = loc.pv[propName][value];\n if(!!res) return res;\n }\n return this.getPropertyValue(value);\n }\n public getPropertyValue(value: any, locale: string = null): string {\n return this.getValueInternal(value, \"pv\", locale);\n }\n public getValidatorName(name: string, locale: string = null): string {\n return this.getValueInternal(name, \"validators\", locale);\n }\n public getTriggerName(name: string, locale: string = null): string {\n return this.getValueInternal(name, \"triggers\", locale);\n }\n public getLocale(locale?: string): any {\n if (!locale) locale = this.currentLocale;\n var loc = locale ? this.locales[locale] : defaultStrings;\n if (!loc) loc = defaultStrings;\n return loc;\n }\n private getValueInternal(value: any, prefix: string, locale: string = null): string {\n if (value === \"\" || value === null || value === undefined) return \"\";\n value = value.toString();\n var loc = this.getLocale(locale);\n var res = loc[prefix] ? loc[prefix][value] : null;\n if (!res) res = defaultStrings[prefix][value];\n if (!!res) return res;\n return this.camelCaseBreaking\n ? this.convertToCamelCase(value, false)\n : value;\n }\n public getLocales(): Array<string> {\n var res = [];\n res.push(\"\");\n for (var key in this.locales) {\n res.push(key);\n }\n return res;\n }\n}\n\nexport var editorLocalization = new EditorLocalization();\nsurveyLocalization.onGetExternalString = (name: string, locale: string): string => {\n const res = editorLocalization.getString(name, locale);\n return res !== name ? res : \"\";\n};\n\nexport function getLocString(strName: string, locale: string = null) {\n return editorLocalization.getString(strName, locale);\n}\n\nexport var defaultStrings = enStrings;\n","declare var Reflect:any;\n\nexport var __decorate = function(\n decorators: any,\n target: any,\n key: any,\n desc: any\n) {\n var c = arguments.length,\n r =\n c < 3\n ? target\n : desc === null\n ? (desc = Object.getOwnPropertyDescriptor(target, key))\n : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\")\n r = Reflect.decorate(decorators, target, key, desc);\n else\n for (var i = decorators.length - 1; i >= 0; i--)\n if ((d = decorators[i]))\n 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 var __assign =\n Object[\"assign\"] ||\n function(target) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p)) target[p] = s[p];\n }\n return target;\n };\n\nexport function __extends(thisClass, baseClass) {\n for (var p in baseClass)\n if (baseClass.hasOwnProperty(p)) thisClass[p] = baseClass[p];\n function __() {\n this.constructor = thisClass;\n }\n thisClass.prototype =\n baseClass === null\n ? Object.create(baseClass)\n : ((__.prototype = baseClass.prototype), new __());\n}\n\nexport var __spreadArrays = function () {\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 var __spreadArray = function(to: any, from: any) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};","export let Version: string;\nVersion = `${process.env.VERSION}`;\n\nexport { enStrings } from \"../localization/english\";\nexport { editorLocalization, defaultStrings } from \"../editorLocalization\";\nexport { editorLocalization as localization } from \"../editorLocalization\";\nexport * from \"../creator-settings\";\nexport { ICreatorOptions } from \"../creator-options\";\n\nexport * from \"../creator-base\";\nexport * from \"../creator-responsivity-manager\";\n\nexport * from \"../components/tabs/embed\";\nexport * from \"../components/tabs/json-editor-ace\";\nexport * from \"../components/tabs/json-editor-plugin\";\nexport * from \"../components/tabs/json-editor-textarea\";\nexport * from \"../components/tabs/test\";\nexport * from \"../components/tabs/test-plugin\";\nexport * from \"../components/tabs/logic\";\nexport * from \"../components/tabs/translation\";\nexport * from \"../components/tabs/translation-theme\";\nexport * from \"../components/tabs/translation-plugin\";\nexport * from \"../components/tabs/designer\";\nexport * from \"../components/tabs/designer-plugin\";\nexport * from \"../components/tabs/logic-ui\";\nexport * from \"../components/tabs/logic-plugin\";\nexport * from \"../components/tabs/logic-theme\";\n\nexport * from \"../components/toolbox/toolbox-tool\";\nexport * from \"../components/page-navigator/page-navigator\";\nexport * from \"../components/page\";\nexport * from \"../components/row\";\nexport * from \"../components/question\";\nexport * from \"../components/question-dropdown\";\nexport * from \"../components/question-image\";\nexport * from \"../components/question-rating\";\nexport * from \"../components/item-value\";\nexport * from \"../components/image-item-value\";\nexport * from \"../components/matrix-cell\";\nexport * from \"../components/simulator\";\nexport * from \"../components/results\";\nexport * from \"../components/header/logo-image\";\nexport * from \"../components/string-editor\";\nexport * from \"../components/embedded-survey\";\nexport * from \"../components/link-value\";\nexport * from \"../editorLocalization\";\nexport * from \"../json5\";\nexport * from \"../property-grid\";\nexport * from \"../property-grid/condition\";\nexport * from \"../property-grid/matrices\";\nexport * from \"../property-grid/bindings\";\nexport * from \"../property-grid/property-grid-view-model\";\nexport * from \"../property-grid/object-selector\";\nexport * from \"../property-grid/restfull\";\nexport * from \"../property-grid/values\";\nexport { propertyGridCss } from \"../property-grid-theme/property-grid\";\nexport * from \"../questionconverter\";\nexport * from \"../svgbundle\";\nexport * from \"../textWorker\";\nexport * from \"../toolbox\";\nexport * from \"../components/side-bar/side-bar-model\";\nexport * from \"../components/side-bar/side-bar-tab-model\";\nexport * from \"../utils/events\";\nexport * from \"../utils/utils\";\nexport * from \"../question-editor/definition\";\nexport * from \"../survey-helper\";\nexport * from \"../utils/resizer\";\nexport * from \"../plugins/undo-redo\";\nexport * from \"../plugins/undo-redo/undo-redo-manager\";\nexport * from \"../pages-controller\";\n\nrequire(\"../components/property-panel/property-panel-item.scss\");\nrequire(\"../components/property-panel/property-panel.scss\");\nrequire(\"../components/tabbed-menu/tabbed-menu-item.scss\");\nrequire(\"../components/tabbed-menu/tabbed-menu.scss\");\nrequire(\"../components/toolbox/toolbox-tool.scss\");\nrequire(\"../components/question-dropdown.scss\");\nrequire(\"../components/toolbox/toolbox.scss\");\nrequire(\"../components/side-bar/side-bar.scss\");\nrequire(\"../property-grid-theme/property-grid.scss\");\nrequire(\"../utils/design.scss\");\nrequire(\"../utils/layout.scss\");\n\nimport { settings, checkLibraryVersion } from \"survey-core\";\nsettings.supportCreatorV2 = true;\n\ncheckLibraryVersion(`${process.env.VERSION}`, \"survey-creator-core\");","import * as Survey from \"survey-core\";\nimport { editorLocalization } from \"./editorLocalization\";\nimport { wrapTextByCurlyBraces } from \"./utils/utils\";\n\nexport class ExpressionToDisplayText {\n private currentQuestion: Survey.Question;\n private showTitles: boolean;\n constructor(public survey: Survey.SurveyModel, private options: any = null) { }\n public toDisplayText(expression: string): string {\n if (!this.survey) return expression;\n this.showTitles =\n !!this.options && this.options.showTitlesInExpressions == true;\n var parser = new Survey.ConditionsParser();\n var node = parser.parseExpression(expression);\n if (!node) return expression;\n if (!!node[\"getType\"]) return this.toDisplayTextCore(node);\n if (!this.showTitles) return expression;\n var variables = [];\n node.setVariables(variables);\n return this.replaceVariables(expression, variables);\n }\n public toExpression(node: Survey.Operand): string {\n return this.toDisplayTextCore(node);\n }\n private toDisplayTextCore(node: Survey.Operand): string {\n this.currentQuestion = null;\n var self = this;\n var isRoot = true;\n var strFunc = function (op: Survey.Operand): string {\n var locIsRoot = isRoot;\n isRoot = false;\n if (self.showTitles && op.getType() == \"variable\") {\n return self.getQuestionText(<Survey.Variable>op);\n }\n if (self.showTitles && op.getType() == \"const\") {\n return self.getDisplayText(<Survey.Const>op);\n }\n if (op.getType() == \"binary\") {\n self.proceedBinary(<Survey.BinaryOperand>op);\n return self.getDisplayBinary(\n <Survey.BinaryOperand>op,\n locIsRoot,\n strFunc\n );\n }\n if (op.getType() == \"unary\") {\n return self.getDisplayUnary(<Survey.UnaryOperand>op, strFunc);\n }\n return undefined;\n };\n return node.toString(strFunc);\n }\n private getQuestionText(op: Survey.Variable): string {\n var question = this.getQuestionByName(op.variable);\n if (!question || !question.title) return op.variable;\n return wrapTextByCurlyBraces(question.title);\n }\n private getDisplayText(op: Survey.Const): string {\n if (!this.currentQuestion) return undefined;\n var res = this.currentQuestion.getDisplayValue(true, op.correctValue);\n return !!res ? new Survey.Const(res).toString() : undefined;\n }\n private getDisplayOperand(\n op: any,\n func: (op: Survey.Operand) => string\n ): string {\n return !!op ? op.toString(func) : \"\";\n }\n static operatorText = {\n less: \"<\",\n lessorequal: \"<=\",\n greater: \">\",\n greaterorequal: \">=\",\n equal: \"==\",\n notequal: \"!=\",\n plus: \"+\",\n minus: \"-\",\n mul: \"*\",\n div: \"/\",\n power: \"^\",\n mod: \"%\",\n negate: \"!\",\n };\n\n private getDisplayOperator(operator: string): string {\n var res = ExpressionToDisplayText.operatorText[operator];\n if (!!res) return res;\n return editorLocalization.getString(\"op.\" + operator);\n }\n private getDisplayBinary(\n op: Survey.BinaryOperand,\n isRoot: boolean,\n func: (op: Survey.Operand) => string\n ): string {\n return (\n (isRoot ? \"\" : \"(\") +\n this.getDisplayOperand(op.leftOperand, func) +\n \" \" +\n this.getDisplayOperator(op.operator) +\n \" \" +\n this.getDisplayOperand(op.rightOperand, func) +\n (isRoot ? \"\" : \")\")\n );\n }\n private getDisplayUnary(\n op: Survey.UnaryOperand,\n func: (op: Survey.Operand) => string\n ): string {\n var exp = op.expression.toString(func);\n var operator = this.getDisplayOperator(op.operator);\n if (op.operator == \"empty\" || op.operator == \"notempty\")\n return exp + \" \" + operator;\n return operator + \" \" + exp;\n }\n private proceedBinary(op: Survey.BinaryOperand) {\n if (op.isArithmetic || op.isConjunction) {\n this.currentQuestion = null;\n return;\n }\n this.currentQuestion = this.getQuestionFromOperands(\n op.leftOperand,\n op.rightOperand\n );\n if (!this.currentQuestion) {\n this.currentQuestion = this.getQuestionFromOperands(\n op.rightOperand,\n op.leftOperand\n );\n }\n }\n private getQuestionFromOperands(op1: Survey.Operand, op2: Survey.Operand) {\n if (!op1 || !op2) return null;\n if (op1.getType() != \"variable\") return null;\n var op2Type = op2.getType();\n if (op2Type != \"const\" && op2Type != \"function\" && op2Type != \"array\")\n return null;\n return this.getQuestionByName((<Survey.Variable>op1).variable);\n }\n private replaceVariables(\n expression: string,\n variables: Array<string>\n ): string {\n for (var i = 0; i < variables.length; i++) {\n expression = this.replaceVariable(expression, variables[i]);\n }\n return expression;\n }\n private replaceVariable(expression: string, variable: string): string {\n var question = this.getQuestionByName(variable);\n if (!question || !question.title) return expression;\n return expression.replace(wrapTextByCurlyBraces(variable), wrapTextByCurlyBraces(question.title));\n }\n private getQuestionByName(name: string): Survey.Question {\n if(!this.survey) return null;\n return <Survey.Question>this.survey.getQuestionByValueName(name);\n }\n}\n\nexport class ExpressionRemoveVariable {\n private wasRemoved: boolean;\n constructor() { }\n public remove(expression: string, variable: string): string {\n var parser = new Survey.ConditionsParser();\n var node = parser.parseExpression(expression);\n if (!node) return expression;\n this.wasRemoved = false;\n if (!!node[\"getType\"]) {\n var op = this.processOperand(node, variable);\n if (!this.wasRemoved) return expression;\n return !!op ? op.toString() : \"\";\n }\n return expression;\n }\n private processOperand(op: Survey.Operand, variable: string): Survey.Operand {\n if (!op) return null;\n if (op.getType() == \"variable\") {\n return this.processVariable(<Survey.Variable>op, variable);\n }\n if (op.getType() == \"unary\") {\n return this.processUnary(<Survey.UnaryOperand>op, variable);\n }\n if (op.getType() == \"binary\") {\n return this.proceedBinary(<Survey.BinaryOperand>op, variable);\n }\n return op;\n }\n private processVariable(\n op: Survey.Variable,\n variable: string\n ): Survey.Operand {\n if (op.variable !== variable) return op;\n this.wasRemoved = true;\n return null;\n }\n private processUnary(\n op: Survey.UnaryOperand,\n variable: string\n ): Survey.Operand {\n var expression = this.processOperand(op.expression, variable);\n if (!!expression) return op;\n this.wasRemoved = true;\n return null;\n }\n private proceedBinary(\n op: Survey.BinaryOperand,\n variable: string\n ): Survey.Operand {\n var left = this.processOperand(op.leftOperand, variable);\n var right = this.processOperand(op.rightOperand, variable);\n if (!!left && !!right) {\n if (left !== op.leftOperand || right !== op.rightOperand)\n return new Survey.BinaryOperand(\n op.operator,\n left,\n right,\n op.isArithmetic\n );\n return op;\n }\n if (!left && !right) return null;\n var res = !!left ? left : right;\n return res.getType() == \"binary\" ? res : null;\n }\n}\n","var map = {\n\t\"./add-lg.svg\": \"./src/images/add-lg.svg\",\n\t\"./add.svg\": \"./src/images/add.svg\",\n\t\"./add_16x16.svg\": \"./src/images/add_16x16.svg\",\n\t\"./apply.svg\": \"./src/images/apply.svg\",\n\t\"./arrow-down.svg\": \"./src/images/arrow-down.svg\",\n\t\"./arrow-left.svg\": \"./src/images/arrow-left.svg\",\n\t\"./arrow-left_16x16.svg\": \"./src/images/arrow-left_16x16.svg\",\n\t\"./arrow-right.svg\": \"./src/images/arrow-right.svg\",\n\t\"./arrow-right_16x16.svg\": \"./src/images/arrow-right_16x16.svg\",\n\t\"./arrow-up.svg\": \"./src/images/arrow-up.svg\",\n\t\"./boolean.svg\": \"./src/images/boolean.svg\",\n\t\"./change-question-type_16x16.svg\": \"./src/images/change-question-type_16x16.svg\",\n\t\"./checkbox.svg\": \"./src/images/checkbox.svg\",\n\t\"./checked.svg\": \"./src/images/checked.svg\",\n\t\"./clear.svg\": \"./src/images/clear.svg\",\n\t\"./clear_16x16.svg\": \"./src/images/clear_16x16.svg\",\n\t\"./collapse-detail-light_16x16.svg\": \"./src/images/collapse-detail-light_16x16.svg\",\n\t\"./collapse-detail_16x16.svg\": \"./src/images/collapse-detail_16x16.svg\",\n\t\"./collapse-panel.svg\": \"./src/images/collapse-panel.svg\",\n\t\"./collapse_16x16.svg\": \"./src/images/collapse_16x16.svg\",\n\t\"./comment.svg\": \"./src/images/comment.svg\",\n\t\"./default.svg\": \"./src/images/default.svg\",\n\t\"./delete_16x16.svg\": \"./src/images/delete_16x16.svg\",\n\t\"./description-hide.svg\": \"./src/images/description-hide.svg\",\n\t\"./description.svg\": \"./src/images/description.svg\",\n\t\"./device-desktop.svg\": \"./src/images/device-desktop.svg\",\n\t\"./device-phone.svg\": \"./src/images/device-phone.svg\",\n\t\"./device-rotate.svg\": \"./src/images/device-rotate.svg\",\n\t\"./device-tablet.svg\": \"./src/images/device-tablet.svg\",\n\t\"./download.svg\": \"./src/images/download.svg\",\n\t\"./drag-area-indicator.svg\": \"./src/images/drag-area-indicator.svg\",\n\t\"./drag-area-indicator_24x16.svg\": \"./src/images/drag-area-indicator_24x16.svg\",\n\t\"./drop-down-arrow.svg\": \"./src/images/drop-down-arrow.svg\",\n\t\"./drop-down-arrow_16x16.svg\": \"./src/images/drop-down-arrow_16x16.svg\",\n\t\"./dropdown.svg\": \"./src/images/dropdown.svg\",\n\t\"./duplicate_16x16.svg\": \"./src/images/duplicate_16x16.svg\",\n\t\"./edit.svg\": \"./src/images/edit.svg\",\n\t\"./edit_16x16.svg\": \"./src/images/edit_16x16.svg\",\n\t\"./editing-finish.svg\": \"./src/images/editing-finish.svg\",\n\t\"./expand-detail-light_16x16.svg\": \"./src/images/expand-detail-light_16x16.svg\",\n\t\"./expand-detail_16x16.svg\": \"./src/images/expand-detail_16x16.svg\",\n\t\"./expand-panel.svg\": \"./src/images/expand-panel.svg\",\n\t\"./expand_16x16.svg\": \"./src/images/expand_16x16.svg\",\n\t\"./export.svg\": \"./src/images/export.svg\",\n\t\"./expression.svg\": \"./src/images/expression.svg\",\n\t\"./fast-entry.svg\": \"./src/images/fast-entry.svg\",\n\t\"./file.svg\": \"./src/images/file.svg\",\n\t\"./html.svg\": \"./src/images/html.svg\",\n\t\"./image.svg\": \"./src/images/image.svg\",\n\t\"./imagepicker.svg\": \"./src/images/imagepicker.svg\",\n\t\"./import.svg\": \"./src/images/import.svg\",\n\t\"./invisible-items.svg\": \"./src/images/invisible-items.svg\",\n\t\"./keyboard-dragging.svg\": \"./src/images/keyboard-dragging.svg\",\n\t\"./language.svg\": \"./src/images/language.svg\",\n\t\"./load.svg\": \"./src/images/load.svg\",\n\t\"./logic-collapse.svg\": \"./src/images/logic-collapse.svg\",\n\t\"./logic-expand.svg\": \"./src/images/logic-expand.svg\",\n\t\"./logo.svg\": \"./src/images/logo.svg\",\n\t\"./matrix.svg\": \"./src/images/matrix.svg\",\n\t\"./matrixdropdown.svg\": \"./src/images/matrixdropdown.svg\",\n\t\"./matrixdynamic.svg\": \"./src/images/matrixdynamic.svg\",\n\t\"./multipletext.svg\": \"./src/images/multipletext.svg\",\n\t\"./next_16x16.svg\": \"./src/images/next_16x16.svg\",\n\t\"./panel.svg\": \"./src/images/panel.svg\",\n\t\"./paneldynamic.svg\": \"./src/images/paneldynamic.svg\",\n\t\"./preview.svg\": \"./src/images/preview.svg\",\n\t\"./previous_16x16.svg\": \"./src/images/previous_16x16.svg\",\n\t\"./radiogroup.svg\": \"./src/images/radiogroup.svg\",\n\t\"./ranking.svg\": \"./src/images/ranking.svg\",\n\t\"./rating.svg\": \"./src/images/rating.svg\",\n\t\"./redo.svg\": \"./src/images/redo.svg\",\n\t\"./remove_16x16.svg\": \"./src/images/remove_16x16.svg\",\n\t\"./save.svg\": \"./src/images/save.svg\",\n\t\"./select-page.svg\": \"./src/images/select-page.svg\",\n\t\"./settings.svg\": \"./src/images/settings.svg\",\n\t\"./settings_16x16.svg\": \"./src/images/settings_16x16.svg\",\n\t\"./signaturepad.svg\": \"./src/images/signaturepad.svg\",\n\t\"./switch-active_16x16.svg\": \"./src/images/switch-active_16x16.svg\",\n\t\"./switch-inactive_16x16.svg\": \"./src/images/switch-inactive_16x16.svg\",\n\t\"./tagbox.svg\": \"./src/images/tagbox.svg\",\n\t\"./text.svg\": \"./src/images/text.svg\",\n\t\"./theme.svg\": \"./src/images/theme.svg\",\n\t\"./toolbox.svg\": \"./src/images/toolbox.svg\",\n\t\"./undo.svg\": \"./src/images/undo.svg\",\n\t\"./visible.svg\": \"./src/images/visible.svg\",\n\t\"./wizard.svg\": \"./src/images/wizard.svg\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/images sync \\\\.svg$\";","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M13 11H17V13H13V17H11V13H7V11H11V7H13V11ZM24 12C24 18.6 18.6 24 12 24C5.4 24 0 18.6 0 12C0 5.4 5.4 0 12 0C18.6 0 24 5.4 24 12ZM22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M13 11H17V13H13V17H11V13H7V11H11V7H13V11ZM23 12C23 18.1 18.1 23 12 23C5.9 23 1 18.1 1 12C1 5.9 5.9 1 12 1C18.1 1 23 5.9 23 12ZM21 12C21 7 17 3 12 3C7 3 3 7 3 12C3 17 7 21 12 21C17 21 21 17 21 12Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M9 7H12V9H9V12H7V9H4V7H7V4H9V7ZM16 8C16 12.4 12.4 16 8 16C3.6 16 0 12.4 0 8C0 3.6 3.6 0 8 0C12.4 0 16 3.6 16 8ZM14 8C14 4.7 11.3 2 8 2C4.7 2 2 4.7 2 8C2 11.3 4.7 14 8 14C11.3 14 14 11.3 14 8Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 1C5.9 1 1 5.9 1 12C1 18.1 5.9 23 12 23C18.1 23 23 18.1 23 12C23 5.9 18.1 1 12 1ZM12 21C7 21 3 17 3 12C3 7 7 3 12 3C17 3 21 7 21 12C21 17 17 21 12 21ZM16.3 8L17.7 9.4L10 17.1L6.3 13.4L7.7 12L10 14.3L16.3 8Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M17.01 11.59L13.01 15.59V6H11.01V15.59L7.00998 11.59L5.59998 13L12.01 19.41L18.43 13L17.01 11.59Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M10.4 2.60001L11.8 4.00001L4.8 11H22V13H4.8L11.8 20L10.4 21.4L1 12L10.4 2.60001Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M15 8.99999H4.39998L8.69998 13.3L7.29998 14.7L0.599976 7.99999L7.29998 1.29999L8.69998 2.69999L4.39998 6.99999H15V8.99999V8.99999Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M13.6 2.60001L12.2 4.00001L19.2 11H2V13H19.2L12.2 20L13.6 21.4L23 12L13.6 2.60001Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M1 6.99999H11.6L7.3 2.69999L8.7 1.29999L15.4 7.99999L8.7 14.7L7.3 13.3L11.6 8.99999H1V6.99999Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M18.43 11.01L12.01 4.60001L5.59998 11.01L7.00998 12.43L11.01 8.43001V18.01H13.01V8.43001L17.01 12.43L18.43 11.01Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M7 11H17C19.8 11 22 8.8 22 6C22 3.2 19.8 1 17 1H7C4.2 1 2 3.2 2 6C2 8.8 4.2 11 7 11ZM7 3H17C18.7 3 20 4.3 20 6C20 7.7 18.7 9 17 9H7C5.3 9 4 7.7 4 6C4 4.3 5.3 3 7 3ZM5 6C5 4.9 5.9 4 7 4C8.1 4 9 4.9 9 6C9 7.1 8.1 8 7 8C5.9 8 5 7.1 5 6ZM19 18C19 19.1 18.1 20 17 20C15.9 20 15 19.1 15 18C15 16.9 15.9 16 17 16C18.1 16 19 16.9 19 18ZM17 13H7C4.2 13 2 15.2 2 18C2 20.8 4.2 23 7 23H17C19.8 23 22 20.8 22 18C22 15.2 19.8 13 17 13ZM17 21H7C5.3 21 4 19.7 4 18C4 16.3 5.3 15 7 15H17C18.7 15 20 16.3 20 18C20 19.7 18.7 21 17 21Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M15 2V7H10L12 5C11.1 3.8 9.6 3 8 3C5.2 3 3 5.2 3 8H1C1 4.1 4.1 1 8 1C10.2 1 12.1 2 13.4 3.6L15 2ZM8 13C6.4 13 4.9 12.2 4 11L6 9H1V14L2.6 12.4C3.9 14 5.8 15 8 15C11.9 15 15 11.9 15 8H13C13 10.8 10.8 13 8 13Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M19 8.90001L21 6.10001V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5.00001C3 3.90001 3.9 3.00001 5 3.00001H19C19 3.00001 19 3.00001 19.1 3.00001L20.8 0.600006L22.4 1.80001L11.1 17.5L6.6 13L8 11.6L10.9 14.5L17.7 5.00001H5V19H19V8.90001Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M9 20.1L1 12L3.1 9.9L9 15.9L20.9 4L23 6.1L9 20.1Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M22.6 8.6L16.4 2.4C16 2 15.5 1.8 15 1.8C14.5 1.8 14 2 13.6 2.4L1.4 14.6C0.600003 15.4 0.600003 16.6 1.4 17.4L6 22H12L22.6 11.4C23.3 10.6 23.3 9.3 22.6 8.6ZM11.1 20H6.8L2.8 16L6.2 12.6L12.4 18.8L11.1 20ZM13.8 17.4L7.6 11.2L15 3.8L21.2 10L13.8 17.4ZM16 20H23V22H14L16 20Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M13.35 3.34999L12.65 2.64999L8.05002 7.24999L3.35002 2.64999L2.65002 3.34999L7.25002 8.04999L2.65002 12.65L3.35002 13.35L8.05002 8.74999L12.65 13.35L13.35 12.65L8.75002 8.04999L13.35 3.34999Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M13 7H3V9H13V7Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 9H4V7H12V9ZM16 0V16H0V0H16ZM14 2H2V14H14V2Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M13 5.6L19.4 12L13 18.4L11.6 17L15.6 13H2V11H15.6L11.6 7L13 5.6ZM20 2V22H22V2H20Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2 6L3 5L8 10L13 5L14 6L8 12L2 6Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M20 3H4C2.9 3 2 3.9 2 5V19C2 20.1 2.9 21 4 21H20C21.1 21 22 20.1 22 19V5C22 3.9 21.1 3 20 3ZM20 19H4V5H20V19ZM18 9H6V7H18V9ZM18 13H6V11H18V13ZM12 17H6V15H12V17Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 4C16.41 4 20 7.14 20 11C19.9901 11.928 19.7826 12.8433 19.3911 13.6847C18.9997 14.5262 18.4334 15.2746 17.73 15.88C17.5103 16.0801 17.338 16.3266 17.2256 16.6017C17.1132 16.8767 17.0634 17.1733 17.08 17.47C16.7752 17.2972 16.4304 17.2076 16.08 17.21C15.8237 17.212 15.5698 17.2594 15.33 17.35C14.2722 17.7789 13.1415 17.9996 12 18C7.59 18 4 14.86 4 11C4 7.14 7.59 4 12 4ZM12 2C6.48 2 2 6 2 11C2 16 6.48 20 12 20C13.4012 19.9996 14.7894 19.7314 16.09 19.21L20 22L19.07 17.36C19.9796 16.5667 20.711 15.5899 21.216 14.4937C21.721 13.3975 21.9882 12.2069 22 11C22 6 17.52 2 12 2Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M15 2H14H11V1C11 0.4 10.6 0 10 0H7C6.4 0 6 0.4 6 1V2H3H2V4H3V14C3 15.1 3.9 16 5 16H12C13.1 16 14 15.1 14 14V4H15V2ZM7 1H10V2H7V1ZM12 14H5V4H12V14ZM7 13H6V5H7V13ZM9 13H8V5H9V13ZM11 13H10V5H11V13Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2.3 3.7L3.6 5C2 6.9 1 9.3 1 12C1 18.1 5.9 23 12 23C14.7 23 17.1 22 19 20.4L20.3 21.7L21.7 20.3L3.7 2.3L2.3 3.7ZM12 21C7 21 3 17 3 12C3 9.9 3.7 7.9 5 6.4L10.8 12.2C10.7 12.3 10.6 12.4 10.6 12.5C10.5 12.7 10.4 13 10.4 13.3C10.4 13.6 10.5 13.9 10.6 14.1C10.7 14.3 10.8 14.5 10.9 14.8C11 15 11.2 15.1 11.4 15.1C11.5 15.1 11.5 15.1 11.6 15.1H11.7C11.8 15.1 11.9 15.1 12.1 15C12.4 14.9 12.6 14.7 12.6 14.5V14.4V14.1L17.5 19C16.1 20.3 14.1 21 12 21ZM7.8 4.1L6.3 2.6C8 1.6 9.9 1 12 1C18.1 1 23 5.9 23 12C23 14.1 22.4 16 21.4 17.7L19.9 16.2C20.6 15 21 13.5 21 12C21 7 17 3 12 3C10.5 3 9 3.4 7.8 4.1ZM13.5 9.8C13.5 9.7 13.6 9.6 13.6 9.4C13.6 9 13.5 8.6 13.2 8.4C12.8 8 12.4 7.9 12 7.9C11.9 7.9 11.8 7.9 11.6 7.9L10.1 6.4C10.2 6.4 10.2 6.3 10.3 6.3C11.5 5.9 12.7 5.9 13.6 6.1C14.1 6.2 14.5 6.4 14.9 6.6C15.6 7.3 16 8.1 16 9.3C16 10.1 15.7 10.8 15.2 11.4L13.5 9.8ZM11.8 15.9C12.5 15.9 13 16.2 13.3 16.8C13.4 17 13.4 17.2 13.4 17.4C13.4 17.8 13.2 18.2 13 18.5C12.7 18.8 12.3 18.9 11.9 18.9C11.5 18.9 11.1 18.7 10.8 18.5C10.5 18.2 10.4 17.8 10.4 17.4C10.4 17 10.6 16.6 10.8 16.3C11 16 11.4 15.9 11.8 15.9Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 1C5.9 1 1 5.9 1 12C1 18.1 5.9 23 12 23C18.1 23 23 18.1 23 12C23 5.9 18.1 1 12 1ZM12 21C7 21 3 17 3 12C3 7 7 3 12 3C17 3 21 7 21 12C21 17 17 21 12 21ZM13.3 16.8C13.4 17 13.4 17.2 13.4 17.4C13.4 17.8 13.2 18.2 13 18.5C12.7 18.8 12.3 18.9 11.9 18.9C11.5 18.9 11.1 18.7 10.8 18.5C10.5 18.2 10.4 17.8 10.4 17.4C10.4 17 10.6 16.6 10.8 16.3C11.1 16 11.5 15.8 11.9 15.8C12.5 15.9 13 16.2 13.3 16.8ZM16 9.3C16 10.4 15.5 11.2 14.6 11.9C14.4 12.1 14.1 12.2 13.9 12.4L13.3 12.8C13 13 12.9 13.1 12.9 13.1C12.8 13.2 12.8 13.3 12.8 13.4C12.8 13.6 12.7 13.8 12.7 14.1V14.4V14.5C12.6 14.7 12.4 14.9 12.2 15C12 15.1 11.9 15.1 11.8 15.1H11.7C11.6 15.1 11.6 15.1 11.5 15.1C11.3 15 11.1 14.9 11 14.8C10.9 14.6 10.7 14.4 10.7 14.1C10.6 13.8 10.5 13.6 10.5 13.3C10.5 13 10.6 12.7 10.7 12.5C10.8 12.3 11 12.1 11.2 11.9C11.4 11.7 11.6 11.6 11.8 11.5L12.4 11.2C13 10.9 13.2 10.7 13.3 10.6C13.6 10.3 13.7 9.9 13.7 9.5C13.7 9.1 13.6 8.7 13.3 8.5C12.8 8 12.4 7.9 12 7.9C10.9 7.9 10.6 8.4 10.6 8.8C10.4 9.3 10.4 9.4 10.4 9.4V9.6C10.4 9.7 10.4 9.7 10.4 9.8L10.5 10.2L10.2 10.3C9.6 10.6 9.1 10.6 8.7 10.4C8.6 10.3 8.4 10.1 8.3 10C8.1 9.7 8 9.4 8 9C8 8.6 8.1 8.3 8.2 8C8.3 7.7 8.5 7.5 8.7 7.3C8.9 7.1 9.1 6.9 9.4 6.7C9.7 6.6 10 6.4 10.3 6.3C11.5 5.9 12.7 5.9 13.6 6.1C14.1 6.2 14.5 6.4 14.9 6.6C15.6 7.3 16 8.1 16 9.3Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M22 17V2H2V17H10V19C10 19.7956 9.68393 20.5587 9.12132 21.1213C8.55871 21.6839 7.79565 22 7 22H17C16.2044 22 15.4413 21.6839 14.8787 21.1213C14.3161 20.5587 14 19.7956 14 19V17H22ZM4 4H20V15H4V4Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M16 18H8V6H16V18ZM16 2H8C7.46957 2 6.96086 2.21071 6.58579 2.58579C6.21071 2.96086 6 3.46957 6 4V20C6 20.5304 6.21071 21.0391 6.58579 21.4142C6.96086 21.7893 7.46957 22 8 22H16C16.5304 22 17.0391 21.7893 17.4142 21.4142C17.7893 21.0391 18 20.5304 18 20V4C18 3.46957 17.7893 2.96086 17.4142 2.58579C17.0391 2.21071 16.5304 2 16 2Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M23.41 5.99591L18 11.4059L16.59 9.99591L19.59 6.99591H17C13.5522 6.99591 10.2456 8.36555 7.80761 10.8035C5.36964 13.2415 4 16.5481 4 19.9959V21.9959H2V19.9959C2 16.0177 3.58035 12.2024 6.3934 9.38931C9.20644 6.57626 13.0218 4.99591 17 4.99591H19.59L16.59 1.99591L18 0.585907L23.41 5.99591Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M20 18H4V6H20V18ZM21 4H3C2.46957 4 1.96086 4.21071 1.58579 4.58579C1.21071 4.96086 1 5.46957 1 6V18C1 18.5304 1.21071 19.0391 1.58579 19.4142C1.96086 19.7893 2.46957 20 3 20H21C21.5304 20 22.0391 19.7893 22.4142 19.4142C22.7893 19.0391 23 18.5304 23 18V6C23 5.46957 22.7893 4.96086 22.4142 4.58579C22.0391 4.21071 21.5304 4 21 4Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 18.41L4.59 11L6 9.59L11 14.59V2H13V14.59L18 9.59L19.41 11L12 18.41ZM2 20V22H22V20H2Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M13 6C13 4.9 13.9 4 15 4C16.1 4 17 4.9 17 6C17 7.1 16.1 8 15 8C13.9 8 13 7.1 13 6ZM9 4C7.9 4 7 4.9 7 6C7 7.1 7.9 8 9 8C10.1 8 11 7.1 11 6C11 4.9 10.1 4 9 4ZM15 10C13.9 10 13 10.9 13 12C13 13.1 13.9 14 15 14C16.1 14 17 13.1 17 12C17 10.9 16.1 10 15 10ZM9 10C7.9 10 7 10.9 7 12C7 13.1 7.9 14 9 14C10.1 14 11 13.1 11 12C11 10.9 10.1 10 9 10ZM15 16C13.9 16 13 16.9 13 18C13 19.1 13.9 20 15 20C16.1 20 17 19.1 17 18C17 16.9 16.1 16 15 16ZM9 16C7.9 16 7 16.9 7 18C7 19.1 7.9 20 9 20C10.1 20 11 19.1 11 18C11 16.9 10.1 16 9 16Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M18 9C19.1 9 20 9.9 20 11C20 12.1 19.1 13 18 13C16.9 13 16 12.1 16 11C16 9.9 16.9 9 18 9ZM20 5C20 3.9 19.1 3 18 3C16.9 3 16 3.9 16 5C16 6.1 16.9 7 18 7C19.1 7 20 6.1 20 5ZM14 11C14 9.9 13.1 9 12 9C10.9 9 10 9.9 10 11C10 12.1 10.9 13 12 13C13.1 13 14 12.1 14 11ZM14 5C14 3.9 13.1 3 12 3C10.9 3 10 3.9 10 5C10 6.1 10.9 7 12 7C13.1 7 14 6.1 14 5ZM8 11C8 9.9 7.1 9 6 9C4.9 9 4 9.9 4 11C4 12.1 4.9 13 6 13C7.1 13 8 12.1 8 11ZM8 5C8 3.9 7.1 3 6 3C4.9 3 4 3.9 4 5C4 6.1 4.9 7 6 7C7.1 7 8 6.1 8 5Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 15L17 10H7L12 15Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M8 11L13 6H3L8 11Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M20 2H4C2.9 2 2 2.9 2 4V6C2 7.1 2.9 8 4 8V20C4 21.1 4.9 22 6 22H20C21.1 22 22 21.1 22 20V8V6V4C22 2.9 21.1 2 20 2ZM20 20H6V8H20V20ZM4 6V4H20V6H4ZM18 12H8V10H18V12ZM18 16H8V14H18V16Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g clip-path=\\\"url(#clip0_9500_71113)\\\"><path d=\\\"M14 0H6C5.46957 0 4.96086 0.210714 4.58579 0.585786C4.21071 0.960859 4 1.46957 4 2V4H2C1.46957 4 0.960859 4.21071 0.585786 4.58579C0.210714 4.96086 0 5.46957 0 6L0 14C0 14.5304 0.210714 15.0391 0.585786 15.4142C0.960859 15.7893 1.46957 16 2 16H10C10.5304 16 11.0391 15.7893 11.4142 15.4142C11.7893 15.0391 12 14.5304 12 14V12H14C14.5304 12 15.0391 11.7893 15.4142 11.4142C15.7893 11.0391 16 10.5304 16 10V2C16 1.46957 15.7893 0.960859 15.4142 0.585786C15.0391 0.210714 14.5304 0 14 0V0ZM10 14H2V6H10V14ZM14 10H12V6C12 5.46957 11.7893 4.96086 11.4142 4.58579C11.0391 4.21071 10.5304 4 10 4H6V2H14V10Z\\\"></path></g><defs><clipPath id=\\\"clip0_9500_71113\\\"><rect width=\\\"16\\\" height=\\\"16\\\"></rect></clipPath></defs></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M21.9 4.8L19.1 2C18.5 1.5 17.8 1.2 17 1.2C16.2 1.2 15.5 1.5 14.9 2.1L4.6 12.3C2.9 14 2 16.3 2 18.7V21C2 21.6 2.4 22 3 22H5.3C7.7 22 10 21.1 11.7 19.4L21.9 9.1C23.1 7.9 23.1 6 21.9 4.8ZM10.2 17.9C8.9 19.2 7.1 20 5.3 20H4V18.7C4 16.8 4.7 15.1 6.1 13.8L12.3 7.6L16.5 11.8L10.2 17.9ZM20.5 7.7L17.8 10.4L13.6 6.2L16.3 3.5C16.5 3.2 16.8 3.2 17 3.2C17.2 3.2 17.5 3.2 17.7 3.5L20.5 6.3C20.9 6.6 20.9 7.3 20.5 7.7Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g clip-path=\\\"url(#clip0_2693_58208)\\\"><path d=\\\"M15.3 2.8L13.2 0.7C12.7 0.2 12.2 0 11.6 0C11 0 10.4 0.2 10 0.7L2 8.6C0.7 9.9 0 11.7 0 13.5V15.3C0 15.7 0.3 16 0.8 16H2.6C4.4 16 6.2 15.3 7.5 14L15.4 6.1C16.2 5.2 16.2 3.7 15.3 2.8ZM6 12.6C5.1 13.5 3.8 14 2.5 14H2V13.5C2 12.2 2.5 10.9 3.4 10L8 5.4L10.6 8L6 12.6ZM13.9 4.7L12 6.6L9.4 4L11.3 2.1C11.4 2 11.5 2 11.6 2C11.7 2 11.7 2 11.8 2.1L13.9 4.2C14 4.3 14 4.5 13.9 4.7Z\\\"></path></g><defs><clipPath id=\\\"clip0_2693_58208\\\"><rect width=\\\"16\\\" height=\\\"16\\\"></rect></clipPath></defs></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2.3 3.7L7.8 9.2L4.6 12.4C2.9 14.1 2 16.4 2 18.8V21.1C2 21.7 2.4 22.1 3 22.1H5.3C7.7 22.1 10 21.2 11.7 19.5L14.9 16.3L20.4 21.8L21.8 20.4L3.8 2.4L2.3 3.7ZM10.2 17.9C8.9 19.2 7.1 20 5.3 20H4V18.7C4 16.8 4.7 15.1 6.1 13.8L9.3 10.6L13.5 14.8L10.2 17.9ZM21.9 9.1L17.2 13.8L15.8 12.4L20.5 7.7C20.9 7.3 20.9 6.7 20.5 6.3L17.7 3.5C17.5 3.2 17.2 3.2 17 3.2C16.8 3.2 16.5 3.2 16.3 3.5L11.6 8.2L10.2 6.8L14.9 2.1C15.5 1.5 16.2 1.2 17 1.2C17.8 1.2 18.5 1.5 19.1 2.1L21.9 4.9C23.1 6 23.1 7.9 21.9 9.1Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M13 7H9V3H7V7H3V9H7V13H9V9H13V7Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M7 9H4V7H7V4H9V7H12V9H9V12H7V9ZM16 0V16H0V0H16ZM14 2H2V14H14V2Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M19.9959 2H14.9959V22H21.9959V2H19.9959ZM19.9959 20H16.9959V4H19.9959V20ZM4.40588 11H12.9959V13H4.40588L8.40588 17L6.99588 18.41L0.585876 12L6.99588 5.59L8.40588 7L4.40588 11Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M6 14L5 13L10 8L5 3L6 2L12 8L6 14Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M6 10.4059L4.59 8.99591L12 1.58591L19.41 8.99591L18 10.4059L13 5.40591V17.9959H11V5.40591L6 10.4059ZM2 19.9959V21.9959H22V19.9959H2Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M20 0.5C19.4 0.2 18.7 0 17.8 0C15.9 0 14.3 0.8 13 2.3C11.5 4.1 10.1 7.1 9 11.5H6.2L5.8 13H8.5L8.3 14C8.2 14.4 8.1 14.9 7.9 15.7C7.7 16.4 7.6 17.1 7.5 17.6C6.8 20.6 6.1 21.9 5.6 22.4C5.6 22.1 5.5 21.8 5.2 21.6C4.7 21.3 3.8 21.2 3.3 21.8C3.1 22 3 22.4 3 22.7C3 23.1 3.1 23.4 3.4 23.6C3.7 23.9 4.2 24 4.8 24C5.4 24 6 23.9 6.5 23.6C7.9 23 9 21.7 9.8 19.6C10.2 18.5 10.8 16.7 11.4 14.1L11.7 12.9H15.1L15.5 11.4H12.1C13.1 7.2 14.2 4.2 15.3 2.7C15.6 2.3 15.9 2 16.2 1.8C16.6 1.5 16.8 1.5 17 1.5C17.2 1.5 17.4 1.5 17.7 1.6C17.5 1.9 17.5 2.2 17.5 2.5C17.5 2.9 17.7 3.3 18 3.6C18.7 4.1 19.8 4.1 20.5 3.6C20.8 3.2 21 2.8 21 2.3C21 1.5 20.7 0.9 20 0.5Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M13 5H2V3H13V5ZM10 7H2V9H10V7ZM2 17H10V15H2V17ZM13 11H2V13H13V11ZM23.4 14.9L17 21.3C16 22.4 14.5 23 13 23H11.6C11.3 23 11 22.7 11 22.4V21C11 19.5 11.6 18.1 12.7 17L19.1 10.6C19.4 10.2 19.9 10 20.4 10C20.9 10 21.4 10.2 21.7 10.6L23.4 12.3C24.2 13 24.2 14.2 23.4 14.9ZM21.9 13.6L20.3 12L14 18.3C13.4 19.1 13 20 13 21C14 21 14.9 20.6 15.6 19.9L21.9 13.6Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M22 9V7C22 5.9 21.1 5 20 5H12L10 3H4C2.9 3 2 3.9 2 5V9V10V21H22L24 9H22ZM4 5H9.2L10.6 6.4L11.2 7H12H20V9H4V5ZM20.3 19H4V11H21.6L20.3 19Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M7.85 6.64999L3.35 11.95L7.85 17.35L6.25 18.65L0.75 11.95L6.25 5.34999L7.85 6.64999ZM17.85 5.34999L16.25 6.64999L20.75 11.95L16.25 17.35L17.75 18.65L23.25 12.05L17.85 5.34999ZM8.15 20.65L10.05 21.25L16.05 3.24999L14.15 2.64999L8.15 20.65Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M20 2H4C2.9 2 2 2.9 2 4V20C2 21.1 2.9 22 4 22H20C21.1 22 22 21.1 22 20V4C22 2.9 21.1 2 20 2ZM20 20H4V4H20V20ZM7 8C7 6.9 7.9 6 9 6C10.1 6 11 6.9 11 8C11 9.1 10.1 10 9 10C7.9 10 7 9.1 7 8ZM19 19H5L9 14L11 15L14 12L19 19Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M17 5H4C2.9 5 2 5.9 2 7V20C2 21.1 2.9 22 4 22H17C18.1 22 19 21.1 19 20V7C19 5.9 18.1 5 17 5ZM17 20H4V7H17V20ZM6 11C6 9.9 6.9 9 8 9C9.1 9 10 9.9 10 11C10 12.1 9.1 13 8 13C6.9 13 6 12.1 6 11ZM16 19H5L16 14V19ZM22 4V17C22 18.1 21.1 19 20 19V17V4H7H5C5 2.9 5.9 2 7 2H20C21.1 2 22 2.9 22 4Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 18.41L4.59 11L6 9.59L11 14.59V2H13V14.59L18 9.59L19.41 11L12 18.41ZM2 20V22H22V20H2Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 7.003C12.4641 7.01107 12.9249 7.08171 13.37 7.213L11.54 9.053C10.9155 9.15262 10.3384 9.44704 9.89125 9.89423C9.44406 10.3414 9.14964 10.9185 9.05002 11.543L7.21002 13.373C7.07873 12.9279 7.00809 12.467 7.00002 12.003C7.00002 10.6769 7.5268 9.40515 8.46449 8.46747C9.40217 7.52978 10.6739 7.003 12 7.003ZM5.40002 15.183C4.39516 14.2466 3.52369 13.1766 2.81002 12.003C5.10002 8.223 8.47002 6.003 12 6.003C12.765 6.0082 13.5255 6.11925 14.26 6.333L15.86 4.733C14.6291 4.25486 13.3206 4.0074 12 4.003C7.24002 4.003 3.05002 7.173 0.52002 12.003C1.41557 13.7255 2.59165 15.2868 4.00002 16.623L5.40002 15.183ZM23.48 12.003C21 16.833 16.76 20.003 12 20.003C10.1707 19.9916 8.37315 19.5242 6.77002 18.643L2.71002 22.713L1.29002 21.293L21.29 1.293L22.71 2.713L18.94 6.473C20.8367 7.96509 22.3858 9.8521 23.48 12.003ZM14.7 10.723L10.7 14.723C11.1058 14.9158 11.5508 15.0116 12 15.003C12.7957 15.003 13.5587 14.6869 14.1213 14.1243C14.6839 13.5617 15 12.7986 15 12.003C14.9993 11.559 14.8967 11.1211 14.7 10.723ZM21.19 12.003C20.243 10.4087 18.9887 9.01851 17.5 7.913L16.16 9.263C16.7052 10.073 16.9975 11.0266 17 12.003C17 13.3291 16.4732 14.6009 15.5356 15.5385C14.5979 16.4762 13.3261 17.003 12 17.003C11.0237 17.0005 10.07 16.7081 9.26002 16.163L8.26002 17.163C9.43056 17.7122 10.707 17.9989 12 18.003C15.53 18.003 18.9 15.783 21.19 12.003Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M17 5L12 0L7 5H11V9H13V5H17Z\\\"></path><path d=\\\"M13 19V15H11V19H7L12 24L17 19H13Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M17.75 8H15.25L13.35 13.08C12.2029 12.2588 11.2439 11.2027 10.537 9.98187C9.83 8.76107 9.39127 7.40364 9.25 6H14V4H9V2H7V4H2V6H6.91C6.73189 7.75797 6.09115 9.43736 5.05302 10.8672C4.01489 12.2971 2.61643 13.4263 1 14.14C1.32315 14.7296 1.69441 15.2915 2.11 15.82C4.82764 14.5445 6.96846 12.2966 8.11 9.52C9.02641 11.7596 10.5985 13.6698 12.62 15L10 22H12.42L13.79 18.13H19.16L20.56 22H23L17.75 8ZM14.46 16.16L15.73 12.53C16.0406 11.7049 16.2945 10.8596 16.49 10C16.55 10.26 16.67 10.66 16.84 11.21C17.01 11.76 17.14 12.15 17.24 12.41L18.55 16.2L14.46 16.16Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M21.93 9H21V7C21 6.46957 20.7893 5.96086 20.4142 5.58579C20.0391 5.21071 19.5304 5 19 5H10L8 3H4C3.46957 3 2.96086 3.21071 2.58579 3.58579C2.21071 3.96086 2 4.46957 2 5L2 21H21L23.89 11.63C23.9916 11.3244 24.0179 10.9988 23.9667 10.6809C23.9155 10.363 23.7882 10.0621 23.5958 9.80392C23.4034 9.54571 23.1514 9.33779 22.8614 9.19782C22.5714 9.05786 22.2519 8.99 21.93 9ZM4 5H7.17L8.59 6.41L9.17 7H19V9H6L4 15V5ZM22 11L19.54 19H4.77L7.44 11H22Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 48 48\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g clip-path=\\\"url(#clip0_252_57732)\\\"><path d=\\\"M19 29.2996L20.4 30.6996L22.7 28.3996V33.9996H24.7V28.3996L27 30.6996L28.4 29.2996L23.7 24.5996L19 29.2996Z\\\"></path><path d=\\\"M24.7 19.6V14H22.7V19.6L20.4 17.3L19 18.7L23.7 23.4L28.4 18.7L27 17.3L24.7 19.6Z\\\"></path></g><defs><clipPath id=\\\"clip0_252_57732\\\"><rect width=\\\"9.4\\\" height=\\\"20\\\" fill=\\\"white\\\" transform=\\\"translate(19 14)\\\"></rect></clipPath></defs></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 48 48\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g clip-path=\\\"url(#clip0_252_57727)\\\"><path d=\\\"M19 17.7L20.4 19.1L22.7 16.8V22.4H24.7V16.8L27 19.1L28.4 17.7L23.7 13L19 17.7Z\\\"></path><path d=\\\"M24.7 32.0004V26.4004H22.7V32.0004L20.4 29.7004L19 31.1004L23.7 35.8004L28.4 31.1004L27 29.7004L24.7 32.0004Z\\\"></path></g><defs><clipPath id=\\\"clip0_252_57727\\\"><rect width=\\\"9.4\\\" height=\\\"22.8\\\" fill=\\\"white\\\" transform=\\\"translate(19 13)\\\"></rect></clipPath></defs></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 32 32\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M28 0H4C1.79 0 0 1.79 0 4V28C0 30.21 1.79 32 4 32H28C30.21 32 32 30.21 32 28V4C32 1.79 30.21 0 28 0ZM30 28C30 29.1 29.1 30 28 30H4C2.9 30 2 29.1 2 28V4C2 2.9 2.9 2 4 2H28C29.1 2 30 2.9 30 4V28ZM6 9C6 7.34 7.34 6 9 6C10.66 6 12 7.34 12 9C12 10.66 10.66 12 9 12C7.34 12 6 10.66 6 9ZM19 16L28 28H4L11 19L15 21L19 16Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M6 1C3.2 1 1 3.2 1 6C1 8.8 3.2 11 6 11C8.8 11 11 8.8 11 6C11 3.2 8.8 1 6 1ZM6 9C4.3 9 3 7.7 3 6C3 4.3 4.3 3 6 3C7.7 3 9 4.3 9 6C9 7.7 7.7 9 6 9ZM8 6C8 7.1 7.1 8 6 8C4.9 8 4 7.1 4 6C4 4.9 4.9 4 6 4C7.1 4 8 4.9 8 6ZM20 18C20 19.1 19.1 20 18 20C16.9 20 16 19.1 16 18C16 16.9 16.9 16 18 16C19.1 16 20 16.9 20 18ZM6 13C3.2 13 1 15.2 1 18C1 20.8 3.2 23 6 23C8.8 23 11 20.8 11 18C11 15.2 8.8 13 6 13ZM6 21C4.3 21 3 19.7 3 18C3 16.3 4.3 15 6 15C7.7 15 9 16.3 9 18C9 19.7 7.7 21 6 21ZM18 11C20.8 11 23 8.8 23 6C23 3.2 20.8 1 18 1C15.2 1 13 3.2 13 6C13 8.8 15.2 11 18 11ZM18 3C19.7 3 21 4.3 21 6C21 7.7 19.7 9 18 9C16.3 9 15 7.7 15 6C15 4.3 16.3 3 18 3ZM18 13C15.2 13 13 15.2 13 18C13 20.8 15.2 23 18 23C20.8 23 23 20.8 23 18C23 15.2 20.8 13 18 13ZM18 21C16.3 21 15 19.7 15 18C15 16.3 16.3 15 18 15C19.7 15 21 16.3 21 18C21 19.7 19.7 21 18 21Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M7 4C7 5.7 5.7 7 4 7C2.3 7 1 5.7 1 4C1 2.3 2.3 1 4 1C5.7 1 7 2.3 7 4ZM15 4C15 5.7 13.7 7 12 7C10.3 7 9 5.7 9 4C9 2.3 10.3 1 12 1C13.7 1 15 2.3 15 4ZM13 4C13 3.4 12.6 3 12 3C11.4 3 11 3.4 11 4C11 4.6 11.4 5 12 5C12.6 5 13 4.6 13 4ZM17 4C17 2.3 18.3 1 20 1C21.7 1 23 2.3 23 4C23 5.7 21.7 7 20 7C18.3 7 17 5.7 17 4ZM19 4C19 4.6 19.4 5 20 5C20.6 5 21 4.6 21 4C21 3.4 20.6 3 20 3C19.4 3 19 3.4 19 4ZM7 12C7 13.7 5.7 15 4 15C2.3 15 1 13.7 1 12C1 10.3 2.3 9 4 9C5.7 9 7 10.3 7 12ZM5 12C5 11.4 4.6 11 4 11C3.4 11 3 11.4 3 12C3 12.6 3.4 13 4 13C4.6 13 5 12.6 5 12ZM12 9C10.3 9 9 10.3 9 12C9 13.7 10.3 15 12 15C13.7 15 15 13.7 15 12C15 10.3 13.7 9 12 9ZM20 9C18.3 9 17 10.3 17 12C17 13.7 18.3 15 20 15C21.7 15 23 13.7 23 12C23 10.3 21.7 9 20 9ZM4 17C2.3 17 1 18.3 1 20C1 21.7 2.3 23 4 23C5.7 23 7 21.7 7 20C7 18.3 5.7 17 4 17ZM12 17C10.3 17 9 18.3 9 20C9 21.7 10.3 23 12 23C13.7 23 15 21.7 15 20C15 18.3 13.7 17 12 17ZM23 20C23 21.7 21.7 23 20 23C18.3 23 17 21.7 17 20C17 18.3 18.3 17 20 17C21.7 17 23 18.3 23 20ZM21 20C21 19.4 20.6 19 20 19C19.4 19 19 19.4 19 20C19 20.6 19.4 21 20 21C20.6 21 21 20.6 21 20Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M7 4C7 5.7 5.7 7 4 7C2.3 7 1 5.7 1 4C1 2.3 2.3 1 4 1C5.7 1 7 2.3 7 4ZM15 4C15 5.7 13.7 7 12 7C10.3 7 9 5.7 9 4C9 2.3 10.3 1 12 1C13.7 1 15 2.3 15 4ZM13 4C13 3.4 12.6 3 12 3C11.4 3 11 3.4 11 4C11 4.6 11.4 5 12 5C12.6 5 13 4.6 13 4ZM17 4C17 2.3 18.3 1 20 1C21.7 1 23 2.3 23 4C23 5.7 21.7 7 20 7C18.3 7 17 5.7 17 4ZM19 4C19 4.6 19.4 5 20 5C20.6 5 21 4.6 21 4C21 3.4 20.6 3 20 3C19.4 3 19 3.4 19 4ZM7 12C7 13.7 5.7 15 4 15C2.3 15 1 13.7 1 12C1 10.3 2.3 9 4 9C5.7 9 7 10.3 7 12ZM5 12C5 11.4 4.6 11 4 11C3.4 11 3 11.4 3 12C3 12.6 3.4 13 4 13C4.6 13 5 12.6 5 12ZM12 9C10.3 9 9 10.3 9 12C9 13.7 10.3 15 12 15C13.7 15 15 13.7 15 12C15 10.3 13.7 9 12 9ZM20 9C18.3 9 17 10.3 17 12C17 13.7 18.3 15 20 15C21.7 15 23 13.7 23 12C23 10.3 21.7 9 20 9ZM5 17H3V19H1V21H3V23H5V21H7V19H5V17Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M20 1H4C2.9 1 2 1.9 2 3V9C2 10.1 2.9 11 4 11H20C21.1 11 22 10.1 22 9V3C22 1.9 21.1 1 20 1ZM20 9H4V3H20V9ZM14 7H6V5H14V7ZM20 13H4C2.9 13 2 13.9 2 15V21C2 22.1 2.9 23 4 23H20C21.1 23 22 22.1 22 21V15C22 13.9 21.1 13 20 13ZM20 21H4V15H20V21ZM14 19H6V17H14V19Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M5.64648 12.6465L6.34648 13.3465L11.7465 8.04648L6.34648 2.64648L5.64648 3.34648L10.2465 8.04648L5.64648 12.6465Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M9 2V4H4V9H2V4C2 2.9 2.9 2 4 2H9ZM20 2H15V4H20V9H22V4C22 2.9 21.1 2 20 2ZM4 20V15H2V20C2 21.1 2.9 22 4 22H9V20H4ZM20 20H15V22H20C21.1 22 22 21.1 22 20V15H20V20Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M9 2V4H4V9H2V4C2 3.46957 2.21071 2.96086 2.58579 2.58579C2.96086 2.21071 3.46957 2 4 2H9ZM20 2H15V4H20V9H22V4C22 3.46957 21.7893 2.96086 21.4142 2.58579C21.0391 2.21071 20.5304 2 20 2ZM4 20V15H2V20C2 20.5304 2.21071 21.0391 2.58579 21.4142C2.96086 21.7893 3.46957 22 4 22H9V20H4ZM20 20H15V22H20C20.5304 22 21.0391 21.7893 21.4142 21.4142C21.7893 21.0391 22 20.5304 22 20V15H20V20ZM17 13H15V11H13V13H11V15H13V17H15V15H17V13Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 3C13.78 3 15.5201 3.52784 17.0001 4.51677C18.4802 5.50571 19.6337 6.91131 20.3149 8.55585C20.9961 10.2004 21.1743 12.01 20.8271 13.7558C20.4798 15.5016 19.6226 17.1053 18.364 18.364C17.1053 19.6226 15.5016 20.4798 13.7558 20.8271C12.01 21.1743 10.2004 20.9961 8.55585 20.3149C6.91132 19.6337 5.50571 18.4802 4.51678 17.0001C3.52785 15.5201 3.00001 13.78 3.00001 12C3.00001 9.61305 3.94822 7.32387 5.63604 5.63604C7.32387 3.94821 9.61306 3 12 3ZM12 1C9.82441 1 7.69767 1.64514 5.88873 2.85383C4.07979 4.06253 2.66989 5.78049 1.83733 7.79048C1.00477 9.80047 0.786929 12.0122 1.21137 14.146C1.6358 16.2798 2.68345 18.2398 4.22183 19.7782C5.76021 21.3166 7.72022 22.3642 9.85401 22.7886C11.9878 23.2131 14.1995 22.9952 16.2095 22.1627C18.2195 21.3301 19.9375 19.9202 21.1462 18.1113C22.3549 16.3023 23 14.1756 23 12C23 9.08262 21.8411 6.28473 19.7782 4.22183C17.7153 2.15893 14.9174 1 12 1ZM16 12L10 8V16L16 12Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M10.393 12.6465L5.69297 8.04651L10.393 3.34651L9.69297 2.64651L4.29297 8.04651L9.69297 13.3465L10.393 12.6465Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 4C16.4 4 20 7.6 20 12C20 16.4 16.4 20 12 20C7.6 20 4 16.4 4 12C4 7.6 7.6 4 12 4ZM12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C17.5 22 22 17.5 22 12C22 6.5 17.5 2 12 2ZM12 10C13.1 10 14 10.9 14 12C14 13.1 13.1 14 12 14C10.9 14 10 13.1 10 12C10 10.9 10.9 10 12 10ZM12 8C9.8 8 8 9.8 8 12C8 14.2 9.8 16 12 16C14.2 16 16 14.2 16 12C16 9.8 14.2 8 12 8Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M22 4H2V21H14V16H18V11H22V4ZM12 19H4V16H12V19ZM16 14H4V11H16V14ZM20 9H4V6H20V9Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g clip-path=\\\"url(#clip0)\\\"><path d=\\\"M12 6.8L12.9 9.7L13.3 11.1H14.8H17.8L15.4 12.9L14.2 13.8L14.6 15.2L15.5 18.1L13.1 16.3L12 15.3L10.8 16.2L8.4 18L9.3 15.1L9.7 13.7L8.5 12.8L6.1 11H9.1H10.6L11 9.6L12 6.8ZM12 0.300003L9.2 9H0L7.4 14.4L4.6 23.1L12 17.7L19.4 23.1L16.6 14.4L24 9H14.8L12 0.300003Z\\\"></path></g><defs><clipPath id=\\\"clip0\\\"><rect width=\\\"24\\\" height=\\\"24\\\"></rect></clipPath></defs></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M7 8.00001H19.6L15.6 4.00001L17 2.60001L23.4 9.00001L17 15.4L15.6 14L19.6 10H7C4.8 10 3 11.8 3 14C3 16.2 4.8 18 7 18H8V20H7C3.7 20 1 17.3 1 14C1 10.7 3.7 8.00001 7 8.00001Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 7V9H4V7H12ZM16 8C16 12.4 12.4 16 8 16C3.6 16 0 12.4 0 8C0 3.6 3.6 0 8 0C12.4 0 16 3.6 16 8ZM14 8C14 4.7 11.3 2 8 2C4.7 2 2 4.7 2 8C2 11.3 4.7 14 8 14C11.3 14 14 11.3 14 8Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M20 2H4L2 4V20C2 20.5304 2.21071 21.0391 2.58579 21.4142C2.96086 21.7893 3.46957 22 4 22H20C20.5304 22 21.0391 21.7893 21.4142 21.4142C21.7893 21.0391 22 20.5304 22 20V4C22 3.46957 21.7893 2.96086 21.4142 2.58579C21.0391 2.21071 20.5304 2 20 2ZM15 4V6H9V4H15ZM8 20V15H16V20H8ZM20 20H18V13H6V20H4V4.83L4.83 4H7V8H17V4H20V20Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M23 11H19.9C19.4 7.4 16.6 4.5 13 4.1V1H11V4.1C7.4 4.5 4.5 7.4 4.1 11H1V13H4.1C4.6 16.6 7.4 19.5 11 19.9V23H13V19.9C16.6 19.4 19.5 16.6 19.9 13H23V11ZM12 18C8.7 18 6 15.3 6 12C6 8.7 8.7 6 12 6C15.3 6 18 8.7 18 12C18 15.3 15.3 18 12 18Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M9.9 4C9.4 2.3 7.9 1 6 1C3.8 1 2 2.8 2 5C2 7.2 3.8 9 6 9C7.9 9 9.4 7.7 9.9 6H22V4H9.9ZM6 7C4.9 7 4 6.1 4 5C4 3.9 4.9 3 6 3C7.1 3 8 3.9 8 5C8 6.1 7.1 7 6 7ZM9 15C7.1 15 5.6 16.3 5.1 18H2V20H5.1C5.5 21.7 7.1 23 9 23C10.9 23 12.4 21.7 12.9 20H22V18H12.9C12.4 16.3 10.9 15 9 15ZM9 21C7.9 21 7 20.1 7 19C7 17.9 7.9 17 9 17C10.1 17 11 17.9 11 19C11 20.1 10.1 21 9 21ZM18 8C16.1 8 14.6 9.3 14.1 11H2V13H14.1C14.5 14.7 16.1 16 18 16C20.2 16 22 14.2 22 12C22 9.8 20.2 8 18 8ZM18 14C16.9 14 16 13.1 16 12C16 10.9 16.9 10 18 10C19.1 10 20 10.9 20 12C20 13.1 19.1 14 18 14Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M6.8 2C6.4 0.8 5.3 0 4 0C2.3 0 1 1.3 1 3C1 4.7 2.3 6 4 6C5.3 6 6.4 5.2 6.8 4H15V2H6.8ZM4 4C3.4 4 3 3.6 3 3C3 2.4 3.4 2 4 2C4.6 2 5 2.4 5 3C5 3.6 4.6 4 4 4ZM12 5C10.7 5 9.6 5.8 9.2 7H1V9H9.2C9.6 10.2 10.7 11 12 11C13.7 11 15 9.7 15 8C15 6.3 13.7 5 12 5ZM12 9C11.4 9 11 8.6 11 8C11 7.4 11.4 7 12 7C12.6 7 13 7.4 13 8C13 8.6 12.6 9 12 9ZM6 10C4.7 10 3.6 10.8 3.2 12H1V14H3.2C3.6 15.2 4.7 16 6 16C7.3 16 8.4 15.2 8.8 14H15V12H8.8C8.4 10.8 7.3 10 6 10ZM6 14C5.4 14 5 13.6 5 13C5 12.4 5.4 12 6 12C6.6 12 7 12.4 7 13C7 13.6 6.6 14 6 14Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M24 17V19H9.1C9.5 18.4 9.9 17.7 10.2 17H24ZM11.9 9.00001C11 13.7 8.6 19.6 5 22.6C3.8 23.6 2 22.6 2 21.1C2 20.4 2.1 19.7 2.2 19H0V17H2.8C4.3 12.9 7.6 9.10001 10.2 7.60001C10.4 6.10001 10.4 4.80001 10.2 3.90001C9.9 3.30001 9.7 3.00001 9.6 3.00001C9.4 3.00001 7.8 2.90001 3.8 8.70001L2.2 7.60001C5.5 2.80001 7.9 0.700007 9.9 1.00001C12 1.20001 12.5 4.60001 12.2 6.90001C14.3 7.00001 14.8 8.20001 14.9 10.3C16.2 9.10001 18.1 7.90001 19.2 9.20001C20.8 8.90001 22.1 10.4 22.9 11.5L21.3 12.7C20.4 11.4 19.8 11.2 19.6 11.2C19.5 11.2 19.5 11.3 19.4 11.4C19 12 18.6 12.8 18 13.7C17.7 14.1 17.2 14.3 16.7 14.1C15.5 13.5 16.5 12.1 16.8 11.2C15.8 12 14.4 13.4 13.9 14.8C13.8 15.5 13.3 16.3 12.5 16.1C11.6 15.9 11.7 14.9 12 14.2C13.3 9.80001 12.5 9.00001 12.5 9.00001C12.5 8.90001 12.2 8.80001 11.9 9.00001ZM9.5 10.4C6.9 12.8 4.1 17.1 4 20.8C6.6 18.5 8.5 14.3 9.5 10.4Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M11 5C12.7 5 14 6.3 14 8C14 9.7 12.7 11 11 11H5C3.3 11 2 9.7 2 8C2 6.3 3.3 5 5 5H11ZM11 3H5C2.2 3 0 5.2 0 8C0 10.8 2.2 13 5 13H11C13.8 13 16 10.8 16 8C16 5.2 13.8 3 11 3ZM11 6C9.9 6 9 6.9 9 8C9 9.1 9.9 10 11 10C12.1 10 13 9.1 13 8C13 6.9 12.1 6 11 6Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M11 5C12.7 5 14 6.3 14 8C14 9.7 12.7 11 11 11H5C3.3 11 2 9.7 2 8C2 6.3 3.3 5 5 5H11ZM11 3H5C2.2 3 0 5.2 0 8C0 10.8 2.2 13 5 13H11C13.8 13 16 10.8 16 8C16 5.2 13.8 3 11 3ZM5 6C3.9 6 3 6.9 3 8C3 9.1 3.9 10 5 10C6.1 10 7 9.1 7 8C7 6.9 6.1 6 5 6Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M22 7V6C22 4.9 21.1 4 20 4H16C14.9 4 14 4.9 14 6V7C14 8.1 14.9 9 16 9H20C21.1 9 22 8.1 22 7ZM20 7H16V6H20V7ZM2 6V7C2 8.1 2.9 9 4 9H11C12.1 9 13 8.1 13 7V6C13 4.9 12.1 4 11 4H4C2.9 4 2 4.9 2 6ZM4 6H11V7H4V6ZM9 12V13C9 14.1 9.9 15 11 15H20C21.1 15 22 14.1 22 13V12C22 10.9 21.1 10 20 10H11C9.9 10 9 10.9 9 12ZM11 12H20V13H11V12ZM2 18V19C2 20.1 2.9 21 4 21H15C16.1 21 17 20.1 17 19V18C17 16.9 16.1 16 15 16H4C2.9 16 2 16.9 2 18ZM4 18H15V19H4V18ZM2 12V13C2 14.1 2.9 15 4 15H6C7.1 15 8 14.1 8 13V12C8 10.9 7.1 10 6 10H4C2.9 10 2 10.9 2 12ZM4 12H6V13H4V12Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M20 6H4C2.9 6 2 6.9 2 8V16C2 17.1 2.9 18 4 18H20C21.1 18 22 17.1 22 16V8C22 6.9 21.1 6 20 6ZM20 16H4V8H20V16ZM14 13H6V11H14V13Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M24 21.4201C23.9387 22.1566 23.5894 22.8394 23.0278 23.3202C22.4662 23.8011 21.7376 24.0413 21 23.9888C20.2624 24.0413 19.5338 23.8011 18.9722 23.3202C18.4106 22.8394 18.0613 22.1566 18 21.4201C18 18.8513 21 16.2826 21 14.9932C21 16.2826 24 18.8513 24 21.4201ZM22 12.9942L11 1.99951L8.71 4.2884L10.12 5.70771L11 4.82814L18.17 11.9946L5.64 15.8028L2.83 12.9942L7.71 8.11653L9.29 9.70576C9.38296 9.79944 9.49356 9.8738 9.61542 9.92455C9.73728 9.97529 9.86799 10.0014 10 10.0014C10.132 10.0014 10.2627 9.97529 10.3846 9.92455C10.5064 9.8738 10.617 9.79944 10.71 9.70576C10.8037 9.61284 10.8781 9.5023 10.9289 9.3805C10.9797 9.2587 11.0058 9.12805 11.0058 8.99611C11.0058 8.86416 10.9797 8.73352 10.9289 8.61172C10.8781 8.48992 10.8037 8.37937 10.71 8.28645L3.71 1.28986C3.5217 1.10165 3.2663 0.995911 3 0.995911C2.7337 0.995911 2.4783 1.10165 2.29 1.28986C2.1017 1.47807 1.99591 1.73334 1.99591 1.99951C1.99591 2.26569 2.1017 2.52096 2.29 2.70917L6.29 6.70722L0 12.9942L10 22.9893L18 14.9932L22 12.9942Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M21 4H16V2C16 1.46957 15.7893 0.960859 15.4142 0.585786C15.0391 0.210714 14.5304 0 14 0L10 0C9.46957 0 8.96086 0.210714 8.58579 0.585786C8.21071 0.960859 8 1.46957 8 2V4H3C2.46957 4 1.96086 4.21071 1.58579 4.58579C1.21071 4.96086 1 5.46957 1 6V12H2V20C2 20.5304 2.21071 21.0391 2.58579 21.4142C2.96086 21.7893 3.46957 22 4 22H20C20.5304 22 21.0391 21.7893 21.4142 21.4142C21.7893 21.0391 22 20.5304 22 20V12H23V6C23 5.46957 22.7893 4.96086 22.4142 4.58579C22.0391 4.21071 21.5304 4 21 4ZM10 2H14V4H10V2ZM20 20H4V12H9V16H15V12H20V20ZM11 14V10H13V14H11ZM21 10H15V8H9V10H3V6H21V10Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M17 8.00001H4.40001L8.40001 4.00001L7.00001 2.60001L0.600006 9.00001L7.00001 15.4L8.40001 14L4.40001 10H17C19.2 10 21 11.8 21 14C21 16.2 19.2 18 17 18H16V20H17C20.3 20 23 17.3 23 14C23 10.7 20.3 8.00001 17 8.00001Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12 4C7.2 4 3 7.2 0.5 12C3 16.8 7.2 20 12 20C16.8 20 20.9 16.8 23.5 12C20.9 7.2 16.7 4 12 4ZM12 18C8.5 18 5.1 15.8 2.8 12C5.1 8.2 8.5 6 12 6C15.5 6 18.9 8.2 21.2 12C18.9 15.8 15.5 18 12 18ZM12 7C9.2 7 7 9.2 7 12C7 14.8 9.2 17 12 17C14.8 17 17 14.8 17 12C17 9.2 14.7 7 12 7ZM12 15C10.3 15 9 13.7 9 12C9 11.7 9 11.5 9.1 11.3L12 12L10.3 9.5C10.8 9.2 11.3 9 12 9C13.7 9 15 10.3 15 12C15 13.7 13.6 15 12 15Z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M7.7 16.3C8.1 16.7 8.1 17.3 7.7 17.7L3.7 21.7C3.5 21.9 3.3 22 3 22C2.7 22 2.5 21.9 2.3 21.7C1.9 21.3 1.9 20.7 2.3 20.3L6.3 16.3C6.7 15.9 7.3 15.9 7.7 16.3ZM20.5 10L23 13.7L18.6 14.6L17.7 19L14 16.5L10.3 19L9.4 14.6L5 13.7L7.5 10L5 6.3L9.4 5.4L10.3 1L14 3.5L17.7 1L18.6 5.4L23 6.3L20.5 10ZM18.1 10L18.8 8.9L19.6 7.7L18.1 7.4L16.8 7.1L16.5 5.8L16.2 4.3L15 5.1L14 5.9L12.9 5.2L11.7 4.3L11.4 5.8L11.1 7.1L9.8 7.4L8.3 7.7L9.1 8.9L9.9 10L9.2 11.1L8.4 12.3L9.9 12.6L11.2 12.9L11.5 14.2L11.8 15.7L13 14.9L14.1 14.2L15.2 14.9L16.4 15.7L16.7 14.2L17 12.9L18.3 12.6L19.8 12.3L19 11.1L18.1 10Z\\\"></path></svg>\"","// This file is based on JSON5, http://json5.org/\n// The modification for getting object and properties location 'at' were maden.\n\nexport class SurveyJSON5 {\n public static positionName = \"pos\";\n private static escapee = {\n \"'\": \"'\",\n '\"': '\"',\n \"\\\\\": \"\\\\\",\n \"/\": \"/\",\n \"\\n\": \"\", // Replace escaped newlines in strings w/ empty string\n b: \"\\b\",\n f: \"\\f\",\n n: \"\\n\",\n r: \"\\r\",\n t: \"\\t\"\n };\n private static ws = [\" \", \"\\t\", \"\\r\", \"\\n\", \"\\v\", \"\\f\", \"\\xA0\", \"\\uFEFF\"];\n private endAt: number;\n private at: number; // The index of the current character\n private ch: any; // The current character\n private text: string;\n private parseType: number; // 0 - stadard, 1 - get information about objects, 2 - get information about all properties\n constructor(parseType: number = 0) {\n this.parseType = parseType;\n }\n public parse(\n source: any,\n reviver: any = null,\n startFrom: number = 0,\n endAt: number = -1\n ): any {\n var result;\n\n this.text = String(source);\n this.at = startFrom;\n this.endAt = endAt;\n this.ch = \" \";\n result = this.value();\n this.white();\n if (this.ch) {\n this.error(\"Syntax error\");\n }\n\n // If there is a reviver function, we recursively walk the new structure,\n // passing each name/value pair to the reviver function for possible\n // transformation, starting with a temporary root object that holds the result\n // in an empty key. If there is not a reviver function, we simply return the\n // result.\n\n return typeof reviver === \"function\"\n ? (function walk(holder, key) {\n var k,\n v,\n value = holder[key];\n if (value && typeof value === \"object\") {\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = walk(value, k);\n if (v !== undefined) {\n value[k] = v;\n } else {\n delete value[k];\n }\n }\n }\n }\n return reviver.call(holder, key, value);\n })({ \"\": result }, \"\")\n : result;\n }\n private error(m: string) {\n // Call error when something is wrong.\n var error = new SyntaxError();\n error.message = m;\n error[\"at\"] = this.at;\n throw error;\n }\n private next(c: any = null) {\n // If a c parameter is provided, verify that it matches the current character.\n if (c && c !== this.ch) {\n this.error(\"Expected '\" + c + \"' instead of '\" + this.ch + \"'\");\n }\n // Get the this.next character. When there are no more characters,\n // return the empty string.\n this.ch = this.chartAt();\n this.at += 1;\n return this.ch;\n }\n private peek() {\n // Get the this.next character without consuming it or\n // assigning it to the this.ch varaible.\n return this.chartAt();\n }\n private chartAt() {\n if (this.endAt > -1 && this.at >= this.endAt) return \"\";\n return this.text.charAt(this.at);\n }\n private identifier() {\n // Parse an identifier. Normally, reserved words are disallowed here, but we\n // only use this for unquoted object keys, where reserved words are allowed,\n // so we don't check for those here. References:\n // - http://es5.github.com/#x7.6\n // - https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Core_Language_Features#Variables\n // - http://docstore.mik.ua/orelly/webprog/jscript/ch02_07.htm\n // TODO Identifiers can have Unicode \"letters\" in them; add support for those.\n var key = this.ch;\n\n // Identifiers must start with a letter, _ or $.\n if (\n this.ch !== \"_\" &&\n this.ch !== \"$\" &&\n (this.ch < \"a\" || this.ch > \"z\") &&\n (this.ch < \"A\" || this.ch > \"Z\")\n ) {\n this.error(\"Bad identifier\");\n }\n\n // Subsequent characters can contain digits.\n while (\n this.next() &&\n (this.ch === \"_\" ||\n this.ch === \"$\" ||\n (this.ch >= \"a\" && this.ch <= \"z\") ||\n (this.ch >= \"A\" && this.ch <= \"Z\") ||\n (this.ch >= \"0\" && this.ch <= \"9\"))\n ) {\n key += this.ch;\n }\n\n return key;\n }\n private number() {\n // Parse a number value.\n\n var number,\n sign = \"\",\n string = \"\",\n base = 10;\n\n if (this.ch === \"-\" || this.ch === \"+\") {\n sign = this.ch;\n this.next(this.ch);\n }\n\n // support for Infinity (could tweak to allow other words):\n if (this.ch === \"I\") {\n number = this.word();\n if (typeof number !== \"number\" || isNaN(number)) {\n this.error(\"Unexpected word for number\");\n }\n return sign === \"-\" ? -number : number;\n }\n\n // support for NaN\n if (this.ch === \"N\") {\n number = this.word();\n if (!isNaN(number)) {\n this.error(\"expected word to be NaN\");\n }\n // ignore sign as -NaN also is NaN\n return number;\n }\n\n if (this.ch === \"0\") {\n string += this.ch;\n this.next();\n if (this.ch === \"x\" || this.ch === \"X\") {\n string += this.ch;\n this.next();\n base = 16;\n } else if (this.ch >= \"0\" && this.ch <= \"9\") {\n this.error(\"Octal literal\");\n }\n }\n\n switch (base) {\n case 10:\n while (this.ch >= \"0\" && this.ch <= \"9\") {\n string += this.ch;\n this.next();\n }\n if (this.ch === \".\") {\n string += \".\";\n while (this.next() && this.ch >= \"0\" && this.ch <= \"9\") {\n string += this.ch;\n }\n }\n if (this.ch === \"e\" || this.ch === \"E\") {\n string += this.ch;\n this.next();\n if (this.ch === \"-\" || this.ch === \"+\") {\n string += this.ch;\n this.next();\n }\n while (this.ch >= \"0\" && this.ch <= \"9\") {\n string += this.ch;\n this.next();\n }\n }\n break;\n case 16:\n while (\n (this.ch >= \"0\" && this.ch <= \"9\") ||\n (this.ch >= \"A\" && this.ch <= \"F\") ||\n (this.ch >= \"a\" && this.ch <= \"f\")\n ) {\n string += this.ch;\n this.next();\n }\n break;\n }\n\n if (sign === \"-\") {\n number = -string;\n } else {\n number = +string;\n }\n\n if (!isFinite(number)) {\n this.error(\"Bad number\");\n } else {\n return number;\n }\n }\n private string() {\n // Parse a string value.\n\n var hex,\n i,\n string = \"\",\n delim, // double quote or single quote\n uffff;\n\n // When parsing for string values, we must look for ' or \" and \\ characters.\n\n if (this.ch === '\"' || this.ch === \"'\") {\n delim = this.ch;\n while (this.next()) {\n if (this.ch === delim) {\n this.next();\n return string;\n } else if (this.ch === \"\\\\\") {\n this.next();\n if (this.ch === \"u\") {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(this.next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (this.ch === \"\\r\") {\n if (this.peek() === \"\\n\") {\n this.next();\n }\n } else if (typeof SurveyJSON5.escapee[this.ch] === \"string\") {\n string += SurveyJSON5.escapee[this.ch];\n } else {\n break;\n }\n } else if (this.ch === \"\\n\") {\n // unescaped newlines are invalid; see:\n // https://github.com/aseemk/json5/issues/24\n // TODO this feels special-cased; are there other\n // invalid unescaped chars?\n break;\n } else {\n string += this.ch;\n }\n }\n }\n this.error(\"Bad string\");\n }\n private inlineComment() {\n // Skip an inline comment, assuming this is one. The current character should\n // be the second / character in the // pair that begins this inline comment.\n // To finish the inline comment, we look for a newline or the end of the text.\n\n if (this.ch !== \"/\") {\n this.error(\"Not an inline comment\");\n }\n\n do {\n this.next();\n if (this.ch === \"\\n\" || this.ch === \"\\r\") {\n this.next();\n return;\n }\n } while (this.ch);\n }\n private blockComment() {\n // Skip a block comment, assuming this is one. The current character should be\n // the * character in the /* pair that begins this block comment.\n // To finish the block comment, we look for an ending */ pair of characters,\n // but we also watch for the end of text before the comment is terminated.\n\n if (this.ch !== \"*\") {\n this.error(\"Not a block comment\");\n }\n\n do {\n this.next();\n while (this.ch === \"*\") {\n this.next(\"*\");\n if (this.ch === \"/\") {\n this.next(\"/\");\n return;\n }\n }\n } while (this.ch);\n\n this.error(\"Unterminated block comment\");\n }\n private comment() {\n // Skip a comment, whether inline or block-level, assuming this is one.\n // Comments always begin with a / character.\n\n if (this.ch !== \"/\") {\n this.error(\"Not a comment\");\n }\n\n this.next(\"/\");\n\n if (this.ch === \"/\") {\n this.inlineComment();\n } else if (this.ch === \"*\") {\n this.blockComment();\n } else {\n this.error(\"Unrecognized comment\");\n }\n }\n private white() {\n // Skip whitespace and comments.\n // Note that we're detecting comments by only a single / character.\n // This works since regular expressions are not valid JSON(5), but this will\n // break if there are other valid values that begin with a / character!\n\n while (this.ch) {\n if (this.ch === \"/\") {\n this.comment();\n } else if (SurveyJSON5.ws.indexOf(this.ch) >= 0) {\n this.next();\n } else {\n return;\n }\n }\n }\n private word(): any {\n // true, false, or null.\n\n switch (this.ch) {\n case \"t\":\n this.next(\"t\");\n this.next(\"r\");\n this.next(\"u\");\n this.next(\"e\");\n return true;\n case \"f\":\n this.next(\"f\");\n this.next(\"a\");\n this.next(\"l\");\n this.next(\"s\");\n this.next(\"e\");\n return false;\n case \"n\":\n this.next(\"n\");\n this.next(\"u\");\n this.next(\"l\");\n this.next(\"l\");\n return null;\n case \"I\":\n this.next(\"I\");\n this.next(\"n\");\n this.next(\"f\");\n this.next(\"i\");\n this.next(\"n\");\n this.next(\"i\");\n this.next(\"t\");\n this.next(\"y\");\n return Infinity;\n case \"N\":\n this.next(\"N\");\n this.next(\"a\");\n this.next(\"N\");\n return NaN;\n }\n this.error(\"Unexpected '\" + this.ch + \"'\");\n }\n private array() {\n // Parse an array value.\n\n var array = [];\n\n if (this.ch === \"[\") {\n this.next(\"[\");\n this.white();\n while (this.ch) {\n if (this.ch === \"]\") {\n this.next(\"]\");\n return array; // Potentially empty array\n }\n // ES5 allows omitting elements in arrays, e.g. [,] and\n // [,null]. We don't allow this in JSON5.\n if (this.ch === \",\") {\n this.error(\"Missing array element\");\n } else {\n array.push(this.value());\n }\n this.white();\n // If there's no comma after this value, this needs to\n // be the end of the array.\n if (this.ch !== \",\") {\n this.next(\"]\");\n return array;\n }\n this.next(\",\");\n this.white();\n }\n }\n this.error(\"Bad array\");\n }\n private object() {\n // Parse an object value.\n\n var key,\n start,\n isFirstProperty = true,\n object = {};\n if (this.parseType > 0) {\n object[SurveyJSON5.positionName] = { start: this.at - 1 };\n }\n if (this.ch === \"{\") {\n this.next(\"{\");\n this.white();\n start = this.at - 1;\n while (this.ch) {\n if (this.ch === \"}\") {\n if (this.parseType > 0) {\n object[SurveyJSON5.positionName].end = start;\n }\n this.next(\"}\");\n return object; // Potentially empty object\n }\n\n // Keys can be unquoted. If they are, they need to be\n // valid JS identifiers.\n if (this.ch === '\"' || this.ch === \"'\") {\n key = this.string();\n } else {\n key = this.identifier();\n }\n\n this.white();\n if (this.parseType > 1) {\n object[SurveyJSON5.positionName][key] = {\n start: start,\n valueStart: this.at\n };\n }\n this.next(\":\");\n object[key] = this.value();\n if (this.parseType > 1) {\n start = this.at - 1;\n object[SurveyJSON5.positionName][key].valueEnd = start;\n object[SurveyJSON5.positionName][key].end = start;\n }\n this.white();\n // If there's no comma after this pair, this needs to be\n // the end of the object.\n if (this.ch !== \",\") {\n if (this.parseType > 1) {\n object[SurveyJSON5.positionName][key].valueEnd--;\n object[SurveyJSON5.positionName][key].end--;\n }\n if (this.parseType > 0) {\n object[SurveyJSON5.positionName].end = this.at - 1;\n }\n this.next(\"}\");\n return object;\n }\n if (this.parseType > 1) {\n object[SurveyJSON5.positionName][key].valueEnd--;\n if (!isFirstProperty) {\n object[SurveyJSON5.positionName][key].end--;\n }\n }\n this.next(\",\");\n this.white();\n isFirstProperty = false;\n }\n }\n this.error(\"Bad object\");\n }\n private value(): any {\n // Parse a JSON value. It could be an object, an array, a string, a number,\n // or a word.\n\n this.white();\n switch (this.ch) {\n case \"{\":\n return this.object();\n case \"[\":\n return this.array();\n case '\"':\n case \"'\":\n return this.string();\n case \"-\":\n case \"+\":\n case \".\":\n return this.number();\n default:\n return this.ch >= \"0\" && this.ch <= \"9\" ? this.number() : this.word();\n }\n }\n\n private replacer: any;\n private indentStr: string;\n private objStack;\n\n public stringify(obj: any, replacer: any = null, space: any = null) {\n if (\n replacer &&\n (typeof replacer !== \"function\" && !this.isArray(replacer))\n ) {\n throw new Error(\"Replacer must be a function or an array\");\n }\n this.replacer = replacer;\n this.indentStr = this.getIndent(space);\n this.objStack = [];\n // special case...when undefined is used inside of\n // a compound object/array, return null.\n // but when top-level, return undefined\n var topLevelHolder = { \"\": obj };\n if (obj === undefined) {\n return this.getReplacedValueOrUndefined(topLevelHolder, \"\", true);\n }\n return this.internalStringify(topLevelHolder, \"\", true);\n }\n private getIndent(space: any): string {\n if (space) {\n if (typeof space === \"string\") {\n return space;\n } else if (typeof space === \"number\" && space >= 0) {\n return this.makeIndent(\" \", space, true);\n }\n }\n return \"\";\n }\n private getReplacedValueOrUndefined(\n holder: any,\n key: any,\n isTopLevel: boolean\n ) {\n var value = holder[key];\n\n // Replace the value with its toJSON value first, if possible\n if (value && value.toJSON && typeof value.toJSON === \"function\") {\n value = value.toJSON();\n }\n\n // If the user-supplied replacer if a function, call it. If its an array, check objects' string keys for\n // presence in the array (removing the key/value pair from the resulting JSON if the key is missing).\n if (typeof this.replacer === \"function\") {\n return this.replacer.call(holder, key, value);\n } else if (this.replacer) {\n if (\n isTopLevel ||\n this.isArray(holder) ||\n this.replacer.indexOf(key) >= 0\n ) {\n return value;\n } else {\n return undefined;\n }\n } else {\n return value;\n }\n }\n\n private isWordChar(char: any): boolean {\n return (\n (char >= \"a\" && char <= \"z\") ||\n (char >= \"A\" && char <= \"Z\") ||\n (char >= \"0\" && char <= \"9\") ||\n char === \"_\" ||\n char === \"$\"\n );\n }\n\n private isWordStart(char: any): boolean {\n return (\n (char >= \"a\" && char <= \"z\") ||\n (char >= \"A\" && char <= \"Z\") ||\n char === \"_\" ||\n char === \"$\"\n );\n }\n\n private isWord(key: any): boolean {\n if (typeof key !== \"string\") {\n return false;\n }\n if (!this.isWordStart(key[0])) {\n return false;\n }\n var i = 1,\n length = key.length;\n while (i < length) {\n if (!this.isWordChar(key[i])) {\n return false;\n }\n i++;\n }\n return true;\n }\n // polyfills\n private isArray(obj: any): boolean {\n if (Array.isArray) {\n return Array.isArray(obj);\n } else {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n }\n }\n\n private isDate(obj: any): boolean {\n return Object.prototype.toString.call(obj) === \"[object Date]\";\n }\n\n private isNaN(val: any): boolean {\n return typeof val === \"number\" && val !== val;\n }\n\n private checkForCircular(obj: any) {\n for (var i = 0; i < this.objStack.length; i++) {\n if (this.objStack[i] === obj) {\n throw new TypeError(\"Converting circular structure to JSON\");\n }\n }\n }\n private makeIndent(str: string, num: number, noNewLine: boolean = false) {\n if (!str) {\n return \"\";\n }\n // indentation no more than 10 chars\n if (str.length > 10) {\n str = str.substring(0, 10);\n }\n\n var indent = noNewLine ? \"\" : \"\\n\";\n for (var i = 0; i < num; i++) {\n indent += str;\n }\n\n return indent;\n }\n\n // Copied from Crokford's implementation of JSON\n // See https://github.com/douglascrockford/JSON-js/blob/e39db4b7e6249f04a195e7dd0840e610cc9e941e/json2.js#L195\n // Begin\n // eslint-disable-next-line\n private static cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\n // eslint-disable-next-line\n private static escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g;\n private static meta = {\n // table of character substitutions\n \"\\b\": \"\\\\b\",\n \"\\t\": \"\\\\t\",\n \"\\n\": \"\\\\n\",\n \"\\f\": \"\\\\f\",\n \"\\r\": \"\\\\r\",\n '\"': '\\\\\"',\n \"\\\\\": \"\\\\\\\\\"\n };\n private escapeString(str: string) {\n // If the string contains no control characters, no quote characters, and no\n // backslash characters, then we can safely slap some quotes around it.\n // Otherwise we must also replace the offending characters with safe escape\n // sequences.\n SurveyJSON5.escapable.lastIndex = 0;\n return SurveyJSON5.escapable.test(str)\n ? '\"' +\n str.replace(SurveyJSON5.escapable, function(a) {\n var c = SurveyJSON5.meta[a];\n return typeof c === \"string\"\n ? c\n : \"\\\\u\" + (\"0000\" + a.charCodeAt(0).toString(16)).slice(-4);\n }) +\n '\"'\n : '\"' + str + '\"';\n }\n // End\n\n private internalStringify(holder: any, key: any, isTopLevel: boolean) {\n var buffer, res;\n\n // Replace the value, if necessary\n var obj_part = this.getReplacedValueOrUndefined(holder, key, isTopLevel);\n\n if (obj_part && !this.isDate(obj_part)) {\n // unbox objects\n // don't unbox dates, since will turn it into number\n obj_part = obj_part.valueOf();\n }\n switch (typeof obj_part) {\n case \"boolean\":\n return obj_part.toString();\n\n case \"number\":\n if (isNaN(obj_part) || !isFinite(obj_part)) {\n return \"null\";\n }\n return obj_part.toString();\n\n case \"string\":\n return this.escapeString(obj_part.toString());\n\n case \"object\":\n if (obj_part === null) {\n return \"null\";\n } else if (this.isArray(obj_part)) {\n this.checkForCircular(obj_part);\n buffer = \"[\";\n this.objStack.push(obj_part);\n\n for (var i = 0; i < obj_part.length; i++) {\n res = this.internalStringify(obj_part, i, false);\n buffer += this.makeIndent(this.indentStr, this.objStack.length);\n if (res === null || typeof res === \"undefined\") {\n buffer += \"null\";\n } else {\n buffer += res;\n }\n if (i < obj_part.length - 1) {\n buffer += \",\";\n } else if (this.indentStr) {\n buffer += \"\\n\";\n }\n }\n this.objStack.pop();\n buffer +=\n this.makeIndent(this.indentStr, this.objStack.length, true) + \"]\";\n } else {\n this.checkForCircular(obj_part);\n buffer = \"{\";\n var nonEmpty = false;\n this.objStack.push(obj_part);\n for (var prop in obj_part) {\n if (obj_part.hasOwnProperty(prop)) {\n var value = this.internalStringify(obj_part, prop, false);\n isTopLevel = false;\n if (typeof value !== \"undefined\" && value !== null) {\n buffer += this.makeIndent(this.indentStr, this.objStack.length);\n nonEmpty = true;\n var propKey = this.isWord(prop)\n ? prop\n : this.escapeString(prop);\n buffer +=\n propKey + \":\" + (this.indentStr ? \" \" : \"\") + value + \",\";\n }\n }\n }\n this.objStack.pop();\n if (nonEmpty) {\n buffer =\n buffer.substring(0, buffer.length - 1) +\n this.makeIndent(this.indentStr, this.objStack.length) +\n \"}\";\n } else {\n buffer = \"{}\";\n }\n }\n return buffer;\n default:\n // functions and undefined should be ignored\n return undefined;\n }\n }\n}\n","// Uncomment the line below if you create a custom dictionary\n// import { editorLocalization, defaultStrings } from \"../editorLocalization\";\n\nexport var enStrings = {\n // survey templates\n survey: {\n edit: \"Edit\",\n externalHelpLink: \"Watch and learn how to create surveys\",\n externalHelpLinkUrl: \"https://www.youtube.com/channel/UCH2ru9okIcooNZfpIbyq4qQ?view_as=subscriber\",\n dropQuestion: \"Please drop a question here from the Toolbox.\",\n addLogicItem: \"Create a rule to customize the flow of the survey.\",\n copy: \"Copy\",\n duplicate: \"Duplicate\",\n addToToolbox: \"Add to toolbox\",\n deletePanel: \"Delete Panel\",\n deleteQuestion: \"Delete Question\",\n convertTo: \"Convert to\",\n drag: \"Drag element\",\n license: \"PLEASE PURCHASE A DEVELOPER LICENSE TO BE ABLE TO USE SURVEY CREATOR IN YOUR APP\"\n },\n // Question types\n qt: {\n default: \"Default\",\n checkbox: \"Checkbox\",\n comment: \"Comment\",\n imagepicker: \"Image Picker\",\n ranking: \"Ranking\",\n image: \"Image\",\n dropdown: \"Dropdown\",\n tagbox: \"Tag Box\",\n file: \"File\",\n html: \"HTML\",\n matrix: \"Single-Choice Matrix\",\n matrixdropdown: \"Multiple-Choice Matrix\",\n matrixdynamic: \"Dynamic Matrix\",\n multipletext: \"Multiple Text\",\n panel: \"Panel\",\n paneldynamic: \"Dynamic Panel\",\n radiogroup: \"Radiogroup\",\n rating: \"Rating\",\n text: \"Single Input\",\n boolean: \"Boolean\",\n expression: \"Expression (read-only)\",\n signaturepad: \"Signature Pad\",\n buttongroup: \"Button Group\"\n },\n // Strings in SurveyJS Creator\n ed: {\n defaultLocale: \"Default ({0})\",\n survey: \"Survey\",\n settings: \"Settings\",\n settingsTooltip: \"Open settings\",\n surveySettings: \"Survey Settings\",\n surveySettingsTooltip: \"Open survey settings\",\n showPanel: \"Show Panel\",\n hidePanel: \"Hide Panel\",\n prevSelected: \"Select previous\",\n nextSelected: \"Select next\",\n surveyTypeName: \"Survey\",\n pageTypeName: \"Page\",\n panelTypeName: \"Panel\",\n questionTypeName: \"Question\",\n columnTypeName: \"Column\",\n addNewPage: \"Add New Page\",\n moveRight: \"Scroll to the Right\",\n moveLeft: \"Scroll to the Left\",\n deletePage: \"Delete Page\",\n editPage: \"Edit Page\",\n edit: \"Edit\",\n newPageName: \"page\",\n newQuestionName: \"question\",\n newPanelName: \"panel\",\n newTextItemName: \"text\",\n testSurvey: \"Preview\",\n defaultV2Theme: \"Default\",\n modernTheme: \"Modern\",\n defaultTheme: \"Default (legacy)\",\n testSurveyAgain: \"Preview Survey Again\",\n testSurveyWidth: \"Survey width: \",\n navigateToMsg: \"You had to navigate to\",\n logic: \"Logic\",\n embedSurvey: \"Embed Survey\",\n translation: \"Translation\",\n saveSurvey: \"Save Survey\",\n saveSurveyTooltip: \"Save Survey\",\n designer: \"Designer\",\n jsonEditor: \"JSON Editor\",\n jsonHideErrors: \"Hide errors\",\n jsonShowErrors: \"Show errors\",\n undo: \"Undo\",\n redo: \"Redo\",\n undoTooltip: \"Undo last change\",\n redoTooltip: \"Redo the change\",\n showMoreChoices: \"Show more\",\n showLessChoices: \"Show less\",\n copy: \"Copy\",\n cut: \"Cut\",\n paste: \"Paste\",\n copyTooltip: \"Copy selection to clipboard\",\n cutTooltip: \"Cut selection to clipboard\",\n pasteTooltip: \"Paste from clipboard\",\n options: \"Options\",\n generateValidJSON: \"Generate Valid JSON\",\n generateReadableJSON: \"Generate Readable JSON\",\n toolbox: \"Toolbox\",\n \"property-grid\": \"Properties\",\n propertyGridFilteredTextPlaceholder: \"Type to search...\",\n toolboxGeneralCategory: \"General\",\n toolboxChoiceCategory: \"Choice Questions\",\n toolboxTextCategory: \"Text Input Questions\",\n toolboxContainersCategory: \"Containers\",\n toolboxMatrixCategory: \"Matrix Questions\",\n toolboxMiscCategory: \"Misc\",\n correctJSON: \"Please correct JSON.\",\n surveyResults: \"Survey Results \",\n surveyResultsTable: \"As Table\",\n surveyResultsJson: \"As JSON\",\n resultsTitle: \"Question Title\",\n resultsName: \"Question Name\",\n resultsValue: \"Answer Value\",\n resultsDisplayValue: \"Display Value\",\n modified: \"Modified\",\n saving: \"Saving\",\n saved: \"Saved\",\n propertyEditorError: \"Error\",\n saveError: \"Error! Editor content is not saved.\",\n translationPropertyGridTitle: \"Language Settings\",\n translationLanguages: \"Languages\",\n translationAddLanguage: \"Select language to translate\",\n translationShowAllStrings: \"All Strings\",\n translationShowUsedStringsOnly: \"Used Strings Only\",\n translationShowAllPages: \"All Pages\",\n translationNoStrings: \"No strings to translate. Please, change the filter.\",\n translationExportToSCVButton: \"Export to CSV\",\n translationImportFromSCVButton: \"Import from CSV\",\n translationMergeLocaleWithDefault: \"Merge {0} with default locale\",\n translationPlaceHolder: \"Translation...\",\n bold: \"Bold\",\n italic: \"Italic\",\n underline: \"Underline\",\n addNewQuestion: \"Add Question\",\n selectPage: \"Select page...\",\n htmlPlaceHolder: \"HTML content will be here.\",\n panelPlaceHolder: \"Drop a question from the toolbox here.\",\n surveyPlaceHolder: \"The survey is empty. Drag an element from the toolbox or click the button below.\",\n addNewTypeQuestion: \"Add {0}\", //{0} is localizable question type\n chooseLogoPlaceholder: \"[LOGO]\",\n auto: \"auto\",\n choices_Item: \"Item \",\n lg: {\n addNewItem: \"Add New Rule\",\n empty_tab: \"Create a rule to customize the flow of the survey.\",\n page_visibilityName: \"Show (hide) page\",\n page_enableName: \"Enable (disable) page\",\n panel_visibilityName: \"Show (hide) panel\",\n panel_enableName: \"Enable (disable) panel\",\n question_visibilityName: \"Show (hide) question\",\n question_enableName: \"Enable (disable) question\",\n question_requireName: \"Make question required\",\n column_visibilityName: \"Show (hide) column\",\n column_enableName: \"Enable (disable) column\",\n column_requireName: \"Make column required\",\n trigger_completeName: \"Complete survey\",\n trigger_setvalueName: \"Set answer\",\n trigger_copyvalueName: \"Copy answer\",\n trigger_skipName: \"Skip to question\",\n trigger_runExpressionName: \"Run expression\",\n completedHtmlOnConditionName: \"Set \\\"Survey Complete\\\" page markup\",\n page_visibilityDescription: \"Make the page visible when the logic expression returns true. Otherwise keep it invisible.\",\n panel_visibilityDescription: \"Make the panel visible when the logic expression returns true. Otherwise keep it invisible.\",\n panel_enableDescription: \"Make the panel, and all elements inside it, enable when the logic expression returns true. Otherwise keep them disabled.\",\n question_visibilityDescription: \"Make the question visible when the logic expression returns true. Otherwise keep it invisible.\",\n question_enableDescription: \"Make the question enable when the logic expression returns true. Otherwise keep it disabled.\",\n question_requireDescription: \"Question becomes required when the logic expression returns true.\",\n trigger_completeDescription: \"When the logic expression returns true then the survey becomes completed and an end-user see the 'Thank you page'.\",\n trigger_setvalueDescription: \"When question values, that are used in the logic expression, are changed and the logic expression returns true, then the value is set to the selected question.\",\n trigger_copyvalueDescription: \"When question values, that are used in the logic expression, are changed and the logic expression returns true, then the value of one selected question is copied to another selected question.\",\n trigger_skipDescription: \"When the logic expression returns true then the survey skip to / focus the selected question.\",\n trigger_runExpressionDescription: \"When the logic expression returns true, then the custom expression is performed. You may optionally set this expression result into the selected question\",\n completedHtmlOnConditionDescription: \"If the logic expression returns true, then the default text for the 'Thank you page' is changed to the given one.\",\n itemExpressionText: \"When expression: '{0}' returns true\", //{0} - the expression\n itemEmptyExpressionText: \"New rule\",\n page_visibilityText: \"make page {0} visible\", //{0} page name\n panel_visibilityText: \"make panel {0} visible\", //{0} panel name\n panel_enableText: \"make panel {0} enable\", //{0} panel name\n question_visibilityText: \"make question {0} visible\", //{0} question name\n question_enableText: \"make question {0} enable\", //{0} question name\n question_requireText: \"make question {0} required\", //{0} question name\n column_visibilityText: \"make column {0} of question {1} visible\", //{0} column name, {1} question name\n column_enableText: \"make column {0} of question {1} enable\", //{0} column name, {1} question name\n column_requireText: \"make column {0} of question {1} required\", //{0} column name, {1} question name\n trigger_completeText: \"survey becomes completed\",\n trigger_setvalueText: \"set into question: {0} value {1}\", //{0} question name, {1} setValue\n trigger_copyvalueText: \"copy into question: {0} value from question {1}\", //{0} and {1} question names\n trigger_skipText: \"survey skip to the question {0}\", //{0} question name\n trigger_runExpressionText1: \"run expression: '{0}'\", //{0} the expression\n trigger_runExpressionText2: \" and set its result into question: {0}\", //{0} question name\n completedHtmlOnConditionText: \"show custom text for the 'Thank you page'.\",\n showAllQuestions: \"All Questions\",\n showAllActionTypes: \"All Action Types\",\n conditions: \"Condition(s)\",\n actions: \"Action(s)\",\n expressionEditorTitle: \"Define condition(s)\",\n actionsEditorTitle: \"Define action(s)\",\n deleteAction: \"Delete Action\",\n addNewAction: \"Add Action\",\n selectedActionCaption: \"Select action...\",\n expressionInvalid: \"The logic expression is empty or invalid. Please correct it.\",\n noActionError: \"Please, add at least one action.\",\n actionInvalid: \"Please, fix problems in your action(s).\",\n expressionSetup: \"\",\n actionsSetup: \"\"\n }\n },\n // Property Editors\n pe: {\n apply: \"Apply\",\n ok: \"OK\",\n save: \"Save\",\n clear: \"Clear\",\n saveTooltip: \"Save\",\n cancel: \"Cancel\",\n set: \"Set\",\n reset: \"Reset\",\n change: \"Change\",\n refresh: \"Refresh\",\n close: \"Close\",\n delete: \"Delete\",\n add: \"Add\",\n addNew: \"Add New\",\n addItem: \"Click to add an item...\",\n removeItem: \"Click to remove the item...\",\n dragItem: \"Drag the item\",\n addOther: \"Other\",\n addSelectAll: \"Select All\",\n addNone: \"None\",\n removeAll: \"Remove All\",\n edit: \"Edit\",\n back: \"Return without saving\",\n backTooltip: \"Return without saving\",\n saveAndBack: \"Save and return\",\n saveAndBackTooltip: \"Save and return\",\n doneEditing: \"Done\",\n editChoices: \"Edit Choices\",\n showChoices: \"Show Choices\",\n move: \"Move\",\n empty: \"<empty>\",\n emptyValue: \"Value is empty\",\n fastEntry: \"Manual Entry\",\n fastEntryNonUniqueError: \"Value '{0}' is not unique\",\n fastEntryChoicesCountError: \"Please limit the number of items from {0} to {1}\",\n fastEntryPlaceholder: \"You can set data in the following format:\\nvalue1|text\\nvalue2\",\n formEntry: \"Form Entry\",\n testService: \"Test the service\",\n itemSelectorEmpty: \"Please select the element\",\n conditionActionEmpty: \"Please select the action\",\n conditionSelectQuestion: \"Select question...\",\n conditionSelectPage: \"Select page...\",\n conditionSelectPanel: \"Select panel...\",\n conditionValueQuestionTitle: \"Please enter/select the value\",\n expressionHelp: \"Use curly brackets to access answers: `{question1} + {question2}`. Expressions also support functions: `iif()`, `today()`, `age()`, `min()`, `max()`, `count()`, `avg()`, and others\",\n aceEditorHelp: \"Press ctrl+space to get expression completion hint\",\n aceEditorRowTitle: \"Current row\",\n aceEditorPanelTitle: \"Current panel\",\n showMore: \"For more details please check the documentation\",\n assistantTitle: \"Available questions\",\n cellsEmptyRowsColumns: \"There is should be at least one column or row\",\n showPreviewBeforeComplete: \"Preview answers before submitting the survey\",\n propertyIsEmpty: \"Please enter a value\",\n propertyIsNoUnique: \"Please enter a unique value\",\n propertyNameIsNotUnique: \"Please enter a unique name\",\n listIsEmpty: \"No items have been added yet\",\n \"listIsEmpty@choices\": \"No choices have been added yet\",\n \"addNew@choices\": \"Add a choice\",\n expressionIsEmpty: \"Expression is empty\",\n value: \"Value\",\n text: \"Text\",\n rowid: \"Row ID\",\n imageLink: \"Image or video URL\",\n columnEdit: \"Edit column: {0}\",\n itemEdit: \"Edit item: {0}\",\n url: \"Service URL\",\n path: \"Path to data within the service\",\n valueName: \"Store answers in the following JSON field\",\n choicesbyurl: {\n valueName: \"Get values from the following JSON field\"\n },\n titleName: \"Get display texts from the following JSON field\",\n imageLinkName: \"Get image URLs from the following JSON field\",\n allowEmptyResponse: \"Allow empty response\",\n titlePlaceholder: \"Title\",\n surveyTitlePlaceholder: \"Survey Title\",\n pageTitlePlaceholder: \"Page {num}\",\n descriptionPlaceholder: \"Description\",\n surveyDescriptionPlaceholder: \"Description\",\n pageDescriptionPlaceholder: \"Description\",\n showOtherItem: \"Allow the Other option\",\n otherText: \"Other option text\",\n showNoneItem: \"Allow the None option\",\n noneText: \"None option text\",\n showSelectAllItem: \"Allow the Select All option\",\n selectAllText: \"Select All option text\",\n choicesMin: \"Minimum value for auto-generated items\",\n choicesMax: \"Maximum value for auto-generated items\",\n choicesStep: \"Step for auto-generated items\",\n name: \"Name\",\n title: \"Title\",\n cellType: \"Cell type\",\n colCount: \"Column count\",\n choicesOrder: \"Choices sort order\",\n visible: \"Visible\",\n isRequired: \"Required\",\n isAllRowRequired: \"Require answer for all rows\",\n requiredErrorText: \"\\\"Required\\\" error message\",\n startWithNewLine: \"Display the question on a new line\",\n rows: \"Rows\",\n cols: \"Columns\",\n placeholder: \"Input area placeholder\",\n showPreview: \"Show preview area\",\n storeDataAsText: \"Store file content in JSON result as text\",\n maxSize: \"Maximum file size (in bytes)\",\n imageHeight: \"Image height\",\n imageWidth: \"Image width\",\n rowCount: \"Row count\",\n columnLayout: \"Columns layout\",\n addRowLocation: \"Add Row button location\",\n addRowText: \"Add Row button text\",\n removeRowText: \"Remove Row button text\",\n rateMin: \"Minimum rate value\",\n rateMax: \"Maximum rate value\",\n rateStep: \"Rate step\",\n minRateDescription: \"Minimum rate value description\",\n maxRateDescription: \"Maximum rate value description\",\n inputType: \"Input type\",\n optionsCaption: \"Option placeholder\",\n defaultValue: \"Default Answer\",\n cellsDefaultRow: \"Default texts\",\n surveyEditorTitle: \"Edit survey settings\",\n qEditorTitle: \"Edit: {0}\",\n maxLength: \"Maximum length (in characters)\",\n buildExpression: \"Build\",\n editExpression: \"Edit\",\n and: \"and\",\n or: \"or\",\n remove: \"Remove\",\n addCondition: \"Add Condition\",\n emptyLogicPopupMessage: \"Select a question to start configuring conditions.\",\n if: \"If\",\n then: \"then\",\n setToName: \"Target question\",\n fromName: \"Question to copy answer from\",\n gotoName: \"Question to skip to\",\n ruleIsNotSet: \"Rule is incorrect\",\n includeIntoResult: \"Include into survey results\",\n showTitle: \"Show the title\",\n expandCollapseTitle: \"Expand/collapse title\",\n locale: \"Survey language\",\n simulator: \"Select device type\",\n landscapeOrientation: \"Switch to landscape orientation\",\n portraitOrientation: \"Switch to portrait orientation\",\n mode: \"Editable or read-only\",\n clearInvisibleValues: \"Clear invisible values\",\n cookieName: \"Cookie name\",\n sendResultOnPageNext: \"Save partial survey results in progress\",\n storeOthersAsComment: \"Store the Others value in a separate field\",\n showPageTitles: \"Show page titles\",\n showPageNumbers: \"Show page numbers\",\n pagePrevText: \"Previous Page button text\",\n pageNextText: \"Next Page button text\",\n completeText: \"Complete Survey button text\",\n previewText: \"Preview Answers button text\",\n editText: \"Edit Answer button text\",\n startSurveyText: \"Start Survey button text\",\n showNavigationButtons: \"Navigation buttons location\",\n showPrevButton: \"Show the Previous Page button\",\n firstPageIsStarted: \"First page is a start page\",\n showCompletedPage: \"Show the Survey Complete page\",\n goNextPageAutomatic: \"Proceed to the next page automatically\",\n showProgressBar: \"Progress bar location\",\n questionTitleLocation: \"Question title location\",\n requiredText: \"Required symbol(s)\",\n questionStartIndex: \"Start index (number or letter)\",\n showQuestionNumbers: \"Question numbering\",\n questionTitleTemplate: \"Question title template, default is: '{no}. {require} {title}'\",\n questionErrorLocation: \"Error message location\",\n focusFirstQuestionAutomatic: \"Focus first question on a new page\",\n questionsOrder: \"Element order on the page\",\n maxTimeToFinish: \"Time limit to finish the survey (in seconds)\",\n maxTimeToFinishPage: \"Time limit to finish one page (in seconds)\",\n image: {\n imageHeight: \"Image height (in CSS-accepted values)\",\n imageWidth: \"Image width (in CSS-accepted values)\",\n },\n page: {\n maxTimeToFinish: \"Time limit to finish the page (in seconds)\"\n },\n question: {\n page: \"Parent page\"\n },\n showTimerPanel: \"Timer location\",\n showTimerPanelMode: \"Timer mode\",\n renderMode: \"Panel display mode\",\n allowAddPanel: \"Allow adding panels\",\n allowRemovePanel: \"Allow removing panels\",\n noEntriesText: \"Empty entries text\",\n panelAddText: \"Add Panel button text\",\n panelRemoveText: \"Remove Panel button text\",\n isSinglePage: \"Show all elements on one page\",\n html: \"HTML markup\",\n expression: \"Expression\",\n setValue: \"Answer\",\n dataFormat: \"Image format\",\n allowAddRows: \"Allow adding rows\",\n allowRemoveRows: \"Allow removing rows\",\n allowRowsDragAndDrop: \"Allow row drag and drop\",\n responsiveImageSizeHelp: \"Does not apply if you specify the exact image width or height.\",\n minImageWidth: \"Minimum image width\",\n maxImageWidth: \"Maximum image width\",\n minImageHeight: \"Minimum image height\",\n maxImageHeight: \"Maximum image height\",\n minValue: \"Minimum value\",\n maxValue: \"Maximum value\",\n minLength: \"Minimum length (in characters)\",\n allowDigits: \"Allow digits\",\n minCount: \"Minimum count\",\n maxCount: \"Maximum count\",\n regex: \"Regular expression\",\n surveyvalidator: {\n text: \"Error message\",\n expression: \"Validation expression\"\n },\n totalText: \"Total row text\",\n totalType: \"Total type\",\n totalExpression: \"Total expression\",\n totalDisplayStyle: \"Total value display style\",\n totalCurrency: \"Currency\",\n totalFormat: \"Formatted string\",\n logo: \"Logo (URL or base64-encoded string)\",\n questionsOnPageMode: \"Survey structure\",\n maxTextLength: \"Maximum answer length (in characters)\",\n maxOthersLength: \"Maximum comment length (in characters)\",\n autoGrowComment: \"Auto-expand comment area if necessary\",\n textUpdateMode: \"Update text question value\",\n focusOnFirstError: \"Set focus on the first invalid answer\",\n checkErrorsMode: \"Run validation\",\n navigateToUrl: \"Navigate to URL\",\n navigateToUrlOnCondition: \"Dynamic URL\",\n completedBeforeHtml: \"Markup to show if the user already filled out this survey\",\n completedHtml: \"Survey Complete page markup\",\n completedHtmlOnCondition: \"Dynamic Survey Complete page markup\",\n loadingHtml: \"Markup to show while survey model is loading\",\n commentText: \"Comment area text\",\n autocomplete: \"Autocomplete type\",\n labelTrue: \"\\\"True\\\" label\",\n labelFalse: \"\\\"False\\\" label\",\n allowClear: \"Show the Clear button\",\n displayStyle: \"Value display style\",\n format: \"Formatted string\",\n maximumFractionDigits: \"Maximum fractional digits\",\n minimumFractionDigits: \"Minimum fractional digits\",\n useGrouping: \"Display grouping separators\",\n allowMultiple: \"Allow multiple files\",\n allowImagesPreview: \"Preview images\",\n acceptedTypes: \"Accepted file types\",\n waitForUpload: \"Wait for the upload to complete\",\n needConfirmRemoveFile: \"Confirm file deletion\",\n detailPanelMode: \"Detail panel location\",\n minRowCount: \"Minimum row count\",\n maxRowCount: \"Maximum row count\",\n confirmDelete: \"Confirm row deletion\",\n confirmDeleteText: \"Confirmation message\",\n paneldynamic: {\n confirmDelete: \"Confirm panel deletion\"\n },\n panelCount: \"Initial panel count\",\n minPanelCount: \"Minimum panel count\",\n maxPanelCount: \"Maximum panel count\",\n panelsState: \"Inner panel expand state\",\n templateDescription: \"Description template\",\n templateTitle: \"Title template\",\n panelPrevText: \"Previous Panel button tooltip\",\n panelNextText: \"Next Panel button tooltip\",\n showRangeInProgress: \"Show progress bar\",\n templateTitleLocation: \"Question title location\",\n panelRemoveButtonLocation: \"Remove Panel button location\",\n hideIfRowsEmpty: \"Hide the question if there are no rows\",\n hideColumnsIfEmpty: \"Hide columns if there are no rows\",\n rateValues: \"Custom rate values\",\n hideIfChoicesEmpty: \"Hide the question if it contains no choices\",\n hideNumber: \"Hide question number\",\n minWidth: \"Minimum width (in CSS-accepted values)\",\n maxWidth: \"Maximum width (in CSS-accepted values)\",\n width: \"Width (in CSS-accepted values)\",\n showHeader: \"Show column headers\",\n horizontalScroll: \"Show horizontal scrollbar\",\n columnMinWidth: \"Minimum column width (in CSS-accepted values)\",\n rowTitleWidth: \"Row header width (in CSS-accepted values)\",\n valueTrue: \"\\\"True\\\" value\",\n valueFalse: \"\\\"False\\\" value\",\n minErrorText: \"\\\"Value is below minimum\\\" error message\",\n maxErrorText: \"\\\"Value exceeds maximum\\\" error message\",\n otherErrorText: \"\\\"Empty comment\\\" error message\",\n keyDuplicationError: \"\\\"Non-unique key value\\\" error message\",\n maxSelectedChoices: \"Maximum selected choices\",\n showClearButton: \"Show the Clear button\",\n showNumber: \"Show panel number\",\n logoWidth: \"Logo width (in CSS-accepted values)\",\n logoHeight: \"Logo height (in CSS-accepted values)\",\n readOnly: \"Read-only\",\n enableIf: \"Editable if\",\n emptyRowsText: \"\\\"No rows\\\" message\",\n size: \"Input size (in characters)\",\n separateSpecialChoices: \"Separate special choices (None, Other, Select All)\",\n choicesFromQuestion: \"Copy choices from the following question\",\n choicesFromQuestionMode: \"Which choices to copy?\",\n showCommentArea: \"Show the comment area\",\n commentPlaceholder: \"Comment area placeholder\",\n displayRateDescriptionsAsExtremeItems: \"Display rate descriptions as extreme values\",\n rowsOrder: \"Row order\",\n columnsLayout: \"Column layout\",\n columnColCount: \"Nested column count\",\n state: \"Panel expand state\",\n correctAnswer: \"Correct Answer\",\n defaultPanelValue: \"Default Values\",\n cells: \"Cell Texts\",\n keyName: \"Key column\",\n itemvalue: {\n text: \"Alt text\"\n },\n logoPosition: \"Logo position\",\n addLogo: \"Add logo...\",\n changeLogo: \"Change logo...\",\n logoPositions: {\n none: \"Remove logo\",\n left: \"Left\",\n right: \"Right\",\n top: \"On the top\",\n bottom: \"In the bottom\"\n },\n tabs: {\n general: \"General\",\n fileOptions: \"Options\",\n html: \"HTML Editor\",\n columns: \"Columns\",\n rows: \"Rows\",\n choices: \"Choices\",\n items: \"Items\",\n visibleIf: \"Visible If\",\n enableIf: \"Editable If\",\n requiredIf: \"Required If\",\n rateValues: \"Rate Values\",\n choicesByUrl: \"Choices from a RESTful Service\",\n matrixChoices: \"Default Choices\",\n multipleTextItems: \"Text Inputs\",\n numbering: \"Numbering\",\n validators: \"Validators\",\n navigation: \"Navigation\",\n question: \"Question\",\n pages: \"Pages\",\n timer: \"Timer/Quiz\",\n calculatedValues: \"Calculated Values\",\n triggers: \"Triggers\",\n templateTitle: \"Title template\",\n totals: \"Totals\",\n logic: \"Logic\",\n layout: \"Layout\",\n data: \"Data\",\n validation: \"Validation\",\n cells: \"Cell Texts\",\n showOnCompleted: \"Survey Complete\",\n logo: \"Logo in Survey Title\",\n slider: \"Slider\",\n expression: \"Expression\",\n others: \"Others\"\n },\n editProperty: \"Edit property '{0}'\",\n items: \"Items\",\n choicesVisibleIf: \"Choices are visible if\",\n choicesEnableIf: \"Choices are selectable if\",\n columnsEnableIf: \"Columns are visible if\",\n rowsEnableIf: \"Rows are visible if\",\n indent: \"Add indents\",\n panel: {\n indent: \"Add outer indents\"\n },\n innerIndent: \"Add inner indents\",\n defaultValueFromLastRow: \"Take default values from the last row\",\n defaultValueFromLastPanel: \"Take default values from the last panel\",\n enterNewValue: \"Please, enter the value.\",\n noquestions: \"There are no questions in the survey.\",\n createtrigger: \"Please create a trigger\",\n titleKeyboardAdornerTip: \"Press enter button to edit\",\n keyboardAdornerTip: \"Press enter button to edit item, press delete button to delete item, press alt plus arrow up or arrow down to move item\",\n triggerOn: \"On \",\n triggerMakePagesVisible: \"Make pages visible\",\n triggerMakeQuestionsVisible: \"Make elements visible\",\n triggerCompleteText: \"Complete the survey if succeed.\",\n triggerNotSet: \"The trigger is not set\",\n triggerRunIf: \"Run if\",\n triggerSetToName: \"Change value of: \",\n triggerFromName: \"Copy value from: \",\n triggerRunExpression: \"Run this Expression\",\n triggerSetValue: \"to: \",\n triggerGotoName: \"Go to the question\",\n triggerIsVariable: \"Do not put the variable into the survey result.\",\n triggerRunExpressionEmpty: \"Please enter a valid expression\",\n emptyExpressionPlaceHolder: \"Type expression here...\",\n noFile: \"No file choosen\",\n clearIfInvisible: \"Clear the value if the question becomes hidden\",\n valuePropertyName: \"Value property name\",\n searchEnabled: \"Enable search\",\n hideSelectedItems: \"Hide selected items\",\n closeOnSelect: \"Close the dropdown after selection\",\n signatureWidth: \"Signature width\",\n signatureHeight: \"Signature height\",\n verticalAlign: \"Vertical alignment\",\n alternateRows: \"Alternate rows\",\n columnsVisibleIf: \"Columns are visible if\",\n rowsVisibleIf: \"Rows are visible if\",\n otherPlaceholder: \"Comment area placeholder\"\n },\n // Property values\n pv: {\n true: \"true\",\n false: \"false\",\n inherit: \"Inherit\",\n show: \"Visible\",\n hide: \"Hidden\",\n default: \"Inherit\",\n initial: \"Initial\",\n random: \"Random\",\n collapsed: \"Collapsed\",\n expanded: \"Expanded\",\n none: \"None\",\n asc: \"Ascending\",\n desc: \"Descending\",\n indeterminate: \"Indeterminate\",\n decimal: \"decimal\",\n currency: \"currency\",\n percent: \"percent\",\n firstExpanded: \"First panel is expanded\",\n off: \"Hide question numbers\",\n onpanel: \"Start on each panel\",\n onPanel: \"Start on each panel\",\n onSurvey: \"Continue throughout the survey\",\n list: \"List\",\n progressTop: \"Panel navigator + Progress bar at the top\",\n progressBottom: \"Panel navigator + Progress bar at the bottom\",\n progressTopBottom: \"Panel navigator + Progress bar at the top and bottom\",\n horizontal: \"Horizontal\",\n vertical: \"Vertical\",\n top: \"Top\",\n bottom: \"Bottom\",\n topBottom: \"Top and bottom\",\n both: \"Both\",\n left: \"Left\",\n right: \"Right\",\n color: \"color\",\n date: \"date\",\n datetime: \"datetime\",\n \"datetime-local\": \"datetime-local\",\n email: \"email\",\n month: \"month\",\n number: \"number\",\n password: \"password\",\n range: \"range\",\n tel: \"tel\",\n text: \"text\",\n time: \"time\",\n url: \"url\",\n week: \"week\",\n hidden: \"Hidden\",\n on: \"Continue from the previous page\",\n onPage: \"Start on each page\",\n edit: \"Editable\",\n display: \"Read-only\",\n onComplete: \"When the survey is completed\",\n onHidden: \"When the question becomes hidden\",\n onHiddenContainer: \"When the question or its panel/page becomes hidden\",\n clearInvisibleValues: {\n none: \"Never\"\n },\n all: \"All\",\n page: \"Page\",\n survey: \"Survey\",\n onNextPage: \"When switching to the next page\",\n onValueChanged: \"After an answer is changed\",\n onValueChanging: \"Before an answer is changed\",\n standard: \"Original structure\",\n singlePage: \"All questions on a single page\",\n questionPerPage: \"Each question on an individual page\",\n noPreview: \"No preview\",\n showAllQuestions: \"Show all questions\",\n showAnsweredQuestions: \"Show answered questions only\",\n pages: \"Completed pages\",\n questions: \"Answered questions\",\n requiredQuestions: \"Answered required questions\",\n correctQuestions: \"Valid answers\",\n buttons: \"Completed pages (button UI)\",\n underInput: \"Under the input\",\n underTitle: \"Under the title\",\n onBlur: \"On blur\",\n onTyping: \"While typing\",\n underRow: \"Under the row\",\n underRowSingle: \"Under the row, only one panel is visible\",\n showNavigationButtons: {\n none: \"Hidden\"\n },\n showProgressBar: {\n off: \"Hidden\"\n },\n showTimerPanel: {\n none: \"Hidden\"\n },\n showTimerPanelMode: {\n all: \"Both\"\n },\n detailPanelMode: {\n none: \"Hidden\"\n },\n addRowLocation: {\n default: \"Depends on matrix layout\"\n },\n panelsState: {\n default: \"Users cannot expand or collapse panels\",\n collapsed: \"All panels are collapsed\",\n expanded: \"All panels are expanded\"\n },\n widthMode: {\n auto: \"Auto\",\n static: \"Static\",\n responsive: \"Responsive\"\n },\n imageFit: {\n none: \"None\",\n contain: \"Contain\",\n cover: \"Cover\",\n fill: \"Fill\"\n },\n contentMode: {\n auto: \"Auto\",\n image: \"Image\",\n video: \"Video\",\n youtube: \"YouTube\"\n },\n displayMode: {\n auto: \"Auto\",\n buttons: \"Buttons\",\n dropdown: \"Dropdown\"\n }\n },\n // Operators\n op: {\n empty: \"Empty\",\n notempty: \"Not empty\",\n equal: \"Equals\",\n notequal: \"Does not equal\",\n contains: \"Contains\",\n notcontains: \"Does not contain\",\n anyof: \"Any of\",\n allof: \"All of\",\n greater: \"Greater than\",\n less: \"Less than\",\n greaterorequal: \"Greater than or equal to\",\n lessorequal: \"Less than or equal to\",\n and: \"and\",\n or: \"or\"\n },\n // Embed window\n ew: {\n angular: \"Use Angular version\",\n jquery: \"Use jQuery version\",\n knockout: \"Use Knockout version\",\n react: \"Use React version\",\n vue: \"Use Vue version\",\n bootstrap: \"For bootstrap framework\",\n modern: \"Modern theme\",\n default: \"Default theme\",\n orange: \"Orange theme\",\n darkblue: \"Darkblue theme\",\n darkrose: \"Darkrose theme\",\n stone: \"Stone theme\",\n winter: \"Winter theme\",\n winterstone: \"Winter-Stone theme\",\n showOnPage: \"Show survey on a page\",\n showInWindow: \"Show survey in a window\",\n loadFromServer: \"Load Survey JSON from server\",\n titleScript: \"Scripts and styles\",\n titleHtml: \"HTML\",\n titleJavaScript: \"JavaScript\"\n },\n // Preview (Survey)\n ts: {\n selectPage: \"Select the page to test it\",\n showInvisibleElements: \"Show invisible elements\",\n hideInvisibleElements: \"Hide invisible elements\"\n },\n validators: {\n answercountvalidator: \"Answer count\",\n emailvalidator: \"Email\",\n expressionvalidator: \"Expression\",\n numericvalidator: \"Number\",\n regexvalidator: \"Regex\",\n textvalidator: \"Text\"\n },\n triggers: {\n completetrigger: \"Complete survey\",\n setvaluetrigger: \"Set answer\",\n copyvaluetrigger: \"Copy answer\",\n skiptrigger: \"Skip to question\",\n runexpressiontrigger: \"Run expression\",\n visibletrigger: \"change visibility (deprecated)\"\n },\n pehelp: {\n cookieName: \"Cookies prevent users from filling out the same survey twice.\",\n format: \"Use {0} as a placeholder for the actual value.\",\n totalText: \"Visible only when at least one column has Total type or Total expression.\",\n acceptedTypes: \"Refer to the [accept](https://www.w3schools.com/tags/att_input_accept.asp) attribute description for more information.\",\n columnColCount: \"Applicable only to Radiogroup and Checkbox cell types.\",\n autocomplete: \"Refer to the [autocomplete](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) attribute description for more information.\",\n valueName: \"If you do not set this property, the answer will be stored in a field specified by the Name property.\",\n choicesbyurl: {\n valueName: \" \"\n },\n keyName: \"If the specified column contains identical values, the survey throws the \\\"Non-unique key value\\\" error.\"\n },\n // Properties\n p: {\n title: {\n name: \"title\",\n title: \"Leave it empty, if it is the same as 'Name'\"\n },\n multiSelect: \"Allow multiple selection\",\n showLabel: \"Show image captions\",\n value: \"Value\",\n //visibleIf: \"visibleIf\",\n //attachOriginalItems: \"attachOriginalItems\",\n //useDisplayValuesInDynamicTexts: \"useDisplayValuesInDynamicTexts\",\n //titleLocation: \"titleLocation\",\n //description: \"description\",\n //descriptionLocation: \"descriptionLocation\",\n //defaultValueExpression: \"defaultValueExpression\",\n //requiredIf: \"requiredIf\",\n //validators: \"validators\",\n //bindings: \"bindings\",\n //renderAs: \"renderAs\",\n //currency: \"currency\",\n //cellHint: \"cellHint\",\n //isUnique: \"isUnique\",\n //showInMultipleColumns: \"showInMultipleColumns\",\n //totalMaximumFractionDigits: \"totalMaximumFractionDigits\",\n //totalMinimumFractionDigits: \"totalMinimumFractionDigits\",\n //columns: \"columns\",\n //detailElements: \"detailElements\",\n //choices: \"choices\",\n //allowAdaptiveActions: \"allowAdaptiveActions\",\n //defaultRowValue: \"defaultRowValue\",\n //detailPanelShowOnAdding: \"detailPanelShowOnAdding\",\n //logoFit: \"logoFit\",\n //pages: \"pages\",\n //questions: \"questions\",\n //triggers: \"triggers\",\n //calculatedValues: \"calculatedValues\",\n //surveyId: \"surveyId\",\n //surveyPostId: \"surveyPostId\",\n //surveyShowDataSaving: \"surveyShowDataSaving\",\n //questionDescriptionLocation: \"questionDescriptionLocation\",\n //progressBarType: \"progressBarType\",\n //questionTitlePattern: \"questionTitlePattern\",\n //widthMode: \"widthMode\",\n //showBrandInfo: \"showBrandInfo\",\n //choicesByUrl: \"choicesByUrl\",\n //choicesLazyLoadEnabled: \"choicesLazyLoadEnabled\",\n //choicesLazyLoadPageSize: \"choicesLazyLoadPageSize\",\n //inputFieldComponent: \"inputFieldComponent\",\n //itemComponent: \"itemComponent\",\n //min: \"min\",\n //max: \"max\",\n //minValueExpression: \"minValueExpression\",\n //maxValueExpression: \"maxValueExpression\",\n //step: \"step\",\n //dataList: \"dataList\",\n //itemSize: \"itemSize\",\n //elements: \"elements\",\n //content: \"content\",\n //navigationButtonsVisibility: \"navigationButtonsVisibility\",\n //navigationTitle: \"navigationTitle\",\n //navigationDescription: \"navigationDescription\",\n //closeOnSelect: \"closeOnSelect\",\n //longTap: \"longTap\",\n //autoGrow: \"autoGrow\",\n //acceptCarriageReturn: \"acceptCarriageReturn\",\n //displayMode: \"displayMode\",\n //label: \"label\",\n //contentMode: \"contentMode\",\n //imageFit: \"imageFit\",\n //altText: \"altText\",\n //height: \"height\",\n //penColor: \"penColor\",\n //backgroundColor: \"backgroundColor\",\n //templateElements: \"templateElements\",\n //operator: \"operator\",\n //isVariable: \"isVariable\",\n //runExpression: \"runExpression\",\n //showCaption: \"showCaption\",\n //iconName: \"iconName\",\n //iconSize: \"iconSize\"\n }\n};\n\n// Uncomment the line below if you create a custom dictionary.\n// Replace \"en\" with a custom locale code (for example, \"fr\" or \"de\"),\n// Replace `enStrings` with the name of the variable that contains the custom dictionary.\n// editorLocalization.locales[\"en\"] = enStrings;\n","import { Base, SurveyModel, EventBase, PageModel, property } from \"survey-core\";\nimport { ICreatorSelectionOwner } from \"./selection-owner\";\n\nexport class PagesController extends Base {\n public onPagesChanged: EventBase<PagesController> = this.addEvent<PagesController>();\n public onCurrentPageChanged: EventBase<PagesController> = this.addEvent<PagesController>();\n private currentPageChangedFunc: (sender: SurveyModel, options: any) => any;\n private surveyValue: SurveyModel;\n @property() page2Display: PageModel;\n constructor(public creator: ICreatorSelectionOwner) {\n super();\n this.currentPageChangedFunc = (sender: SurveyModel, options: any) => {\n this.page2Display = this.survey.currentPage;\n this.onCurrentPageChanged.fire(this, {});\n };\n this.onSurveyChanged();\n }\n public get survey(): SurveyModel {\n return this.creator.survey;\n }\n public get pages(): Array<PageModel> {\n return this.survey.pages;\n }\n public get currentPage(): PageModel {\n return this.survey.currentPage;\n }\n public set currentPage(value: PageModel) {\n (<any>this.survey).currentPage = value;\n this.page2Display = value;\n }\n public selectPage(value: PageModel) {\n this.currentPage = value;\n this.creator.selectElement(value);\n }\n public getDisplayName(page: PageModel): string {\n if (!page) return \"\";\n return this.creator.getObjectDisplayName(page, \"page-selector\");\n }\n public raisePagesChanged() {\n this.page2Display = (<any>this.survey).currentPage;\n this.onPagesChanged.fire(this, {});\n }\n public onSurveyChanged() {\n this.removeFunctions();\n this.surveyValue = this.creator.survey;\n if (!this.surveyValue) return;\n this.raisePagesChanged();\n this.page2Display = this.survey.currentPage;\n this.surveyValue.onCurrentPageChanged.add(this.currentPageChangedFunc);\n }\n public dispose() {\n super.dispose();\n this.removeFunctions();\n }\n private removeFunctions() {\n if (!!this.surveyValue && !this.surveyValue.isDisposed) {\n this.surveyValue.onCurrentPageChanged.remove(\n this.currentPageChangedFunc\n );\n }\n }\n}\n","import { SurveyModel } from \"survey-core\";\nimport { CreatorBase, ICreatorPlugin } from \"../../creator-base\";\nimport { UndoRedoController } from \"./undo-redo-controller\";\nimport { UndoRedoManager } from \"./undo-redo-manager\";\n\nexport class UndoRedoPlugin implements ICreatorPlugin {\n\n constructor(private creator: CreatorBase) {\n this.model = new UndoRedoController(creator);\n this.model.createActions().forEach(action => creator.toolbar.actions.push(action));\n creator.registerShortcut(\"undo\", {\n hotKey: {\n ctrlKey: true,\n keyCode: 90,\n },\n macOsHotkey: {\n keyCode: 90,\n },\n execute: () => this.model.undo()\n });\n creator.registerShortcut(\"redo\", {\n hotKey: {\n ctrlKey: true,\n keyCode: 89,\n },\n macOsHotkey: {\n keyCode: 89,\n },\n execute: () => this.model.redo()\n });\n }\n public model: any = undefined;\n public activate(): void {\n }\n public deactivate(): boolean {\n return true;\n }\n public update(): void {\n }\n public addFooterActions() {\n this.model.undoAction && (this.creator.footerToolbar.actions.push(this.model.undoAction));\n this.model.redoAction && (this.creator.footerToolbar.actions.push(this.model.redoAction));\n }\n}\n\nexport function undoRedoTransaction(transactionName?: string, undoRedoManagerProperty: string = \"undoRedoManager\") {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const wrappedFunction = descriptor.value;\n descriptor.value = function (...args: any[]) {\n const undoRedoManager: UndoRedoManager = this[undoRedoManagerProperty];\n try {\n undoRedoManager && undoRedoManager.startTransaction(transactionName || propertyKey);\n const result = wrappedFunction.apply(this, args);\n return result;\n } finally {\n undoRedoManager && undoRedoManager.stopTransaction();\n }\n };\n return descriptor;\n };\n}\n\nexport function ignoreUndoRedo(undoRedoManagerProperty: string = \"undoRedoManager\") {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const wrappedFunction = descriptor.value;\n descriptor.value = function (...args: any[]) {\n const undoRedoManager: UndoRedoManager = this[undoRedoManagerProperty];\n try {\n undoRedoManager && undoRedoManager.suspend();\n const result = wrappedFunction.apply(this, args);\n return result;\n } finally {\n undoRedoManager && undoRedoManager.resume();\n }\n };\n return descriptor;\n };\n}","import { Action, ArrayChanges, Base, ComputedUpdater, property, SurveyModel } from \"survey-core\";\nimport { CreatorBase, CreatorEvent } from \"../../creator-base\";\nimport { IUndoRedoChange, UndoRedoManager } from \"./undo-redo-manager\";\n\nexport class UndoRedoController extends Base {\n private undoAction: Action;\n private redoAction: Action;\n\n private onSurveyPropertyValueChangedCallback(\n name: string,\n oldValue: any,\n newValue: any,\n sender: Base,\n arrayChanges: ArrayChanges\n ) {\n if (!this.undoRedoManager || !this.undoRedoManager.isCorrectProperty(sender, name)) {\n return;\n }\n const canUndoRedoMerge = this.undoRedoManager.tryMergeTransaction(sender, name, newValue);\n if (!canUndoRedoMerge) {\n this.undoRedoManager.startTransaction(name + \" changed\");\n this.undoRedoManager.onPropertyValueChanged(\n name,\n oldValue,\n newValue,\n sender,\n arrayChanges\n );\n this.creator.updateElementsOnLocaleChanged(sender, name);\n this.creator.updateConditionsOnNameChanged(sender, name, oldValue);\n this.undoRedoManager.stopTransaction();\n } else {\n this.creator.notifySurveyPropertyChanged({\n name: name,\n target: sender,\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n\n constructor(private creator: CreatorBase) {\n super();\n this.updateSurvey();\n }\n @property() public undoRedoManager: UndoRedoManager = undefined;\n public updateSurvey(): void {\n const surveyModel = this.creator.survey;\n if (!!surveyModel) {\n surveyModel.onPropertyValueChangedCallback = (\n name: string,\n oldValue: any,\n newValue: any,\n sender: Base,\n arrayChanges: ArrayChanges\n ) => {\n this.onSurveyPropertyValueChangedCallback(\n name,\n oldValue,\n newValue,\n sender,\n arrayChanges\n );\n };\n }\n this.undoRedoManager = new UndoRedoManager();\n this.undoRedoManager.changesFinishedCallback = (\n changes: IUndoRedoChange\n ) => {\n this.creator.notifySurveyPropertyChanged({\n name: changes.propertyName,\n target: changes.object,\n oldValue: changes.oldValue,\n newValue: changes.newValue\n });\n };\n this.undoRedoManager.canUndoRedoCallback = () => {\n this.updateUndeRedoActions();\n };\n }\n private selectElementAfterUndo() {\n this.selectElementAfterUndoCore(this.creator.selectedElement);\n }\n private selectElementAfterUndoCore(obj: Base) {\n if (\n !!obj &&\n !obj.isDisposed &&\n !!obj.getSurvey() &&\n (!this.creator.isObjQuestion(obj) || !!obj[\"parent\"])\n ) {\n this.creator.selectElement(obj);\n return;\n }\n this.creator.selectElement(this.creator.survey);\n }\n public undo() {\n if (!this.undoRedoManager) return;\n this.undoRedoManager.suspend();\n var options = { canUndo: this.undoRedoManager.canUndo() };\n this.onBeforeUndo.fire(this.creator, options);\n this.creator.onBeforeUndo.fire(this.creator, options);\n if (options.canUndo) {\n var item = this.undoRedoManager.undo();\n this.onAfterUndo.fire(this.creator, { state: item });\n this.creator.onAfterUndo.fire(this.creator, { state: item });\n this.selectElementAfterUndo();\n }\n this.undoRedoManager.resume();\n }\n public redo() {\n if (!this.undoRedoManager) return;\n const options = { canRedo: this.undoRedoManager.canRedo() };\n this.onBeforeRedo.fire(this.creator, options);\n this.creator.onBeforeRedo.fire(this.creator, options);\n if (options.canRedo) {\n const item = this.undoRedoManager.redo();\n this.onAfterRedo.fire(this.creator, { state: item });\n this.creator.onAfterRedo.fire(this.creator, { state: item });\n this.selectElementAfterUndo();\n }\n }\n startTransaction(name: string = \"\") {\n this.undoRedoManager && this.undoRedoManager.startTransaction(name);\n }\n stopTransaction() {\n this.undoRedoManager && this.undoRedoManager.stopTransaction();\n }\n\n public createActions() {\n const items: Array<Action> = [];\n this.undoAction = new Action({\n id: \"action-undo\",\n iconName: \"icon-undo\",\n locTitleName: \"ed.undo\",\n showTitle: false,\n visible: <any>new ComputedUpdater(() => this.creator.activeTab === \"designer\"),\n action: () => this.undo()\n });\n this.redoAction = new Action({\n id: \"action-redo\",\n iconName: \"icon-redo\",\n locTitleName: \"ed.redo\",\n showTitle: false,\n visible: <any>new ComputedUpdater(() => this.creator.activeTab === \"designer\"),\n action: () => this.redo()\n });\n items.push(this.undoAction);\n items.push(this.redoAction);\n this.updateUndeRedoActions();\n return items;\n }\n private updateUndeRedoActions() {\n this.undoAction.enabled = this.undoRedoManager.canUndo();\n this.redoAction.enabled = this.undoRedoManager.canRedo();\n }\n\n /**\n * The event is called before undo happens.\n * options.canUndo a boolean value. It is true by default. Set it false to hide prevent undo operation.\n */\n public onBeforeUndo: CreatorEvent = new CreatorEvent();\n /**\n * The event is called before redo happens.\n * options.canRedo a boolean value. It is true by default. Set it false to hide prevent redo operation.\n */\n public onBeforeRedo: CreatorEvent = new CreatorEvent();\n /**\n * The event is called after undo happens.\n * options.state is an undo/redo item.\n */\n public onAfterUndo: CreatorEvent = new CreatorEvent();\n /**\n * The event is called after redo happens.\n * options.state is an undo/redo item.\n */\n public onAfterRedo: CreatorEvent = new CreatorEvent();\n}\n","import {\n ArrayChanges,\n Base,\n JsonObjectProperty,\n Serializer\n} from \"survey-core\";\nimport { EditableObject } from \"../../editable-object\";\n\nexport interface IUndoRedoChange {\n object: any;\n propertyName: string;\n oldValue: any;\n newValue: any;\n}\n\nexport class UndoRedoManager {\n constructor() { }\n public onPropertyValueChanged(\n name: string,\n oldValue: any,\n newValue: any,\n sender: Base,\n arrayChanges: ArrayChanges\n ) {\n if (EditableObject.isCopyObject(sender)) return;\n if (this.isIgnoring) return;\n if (sender[\"ignoreUndoRedo\"] === true) return;\n\n let transaction = this._preparingTransaction;\n let action = arrayChanges\n ? new UndoRedoArrayAction(name, sender, arrayChanges)\n : new UndoRedoAction(name, oldValue, newValue, sender);\n\n if (!transaction) {\n transaction = new Transaction(name);\n transaction.addAction(action);\n this._addTransaction(transaction);\n return;\n }\n\n transaction.addAction(action);\n }\n public isCorrectProperty(sender: Base, propertyName: string): boolean {\n var prop: JsonObjectProperty = Serializer.findProperty(\n sender.getType(),\n propertyName\n );\n return !!prop && prop.isSerializable;\n }\n public tryMergeTransaction(sender: Base, propertyName: string, newValue: any): boolean {\n if(propertyName === \"name\") return false; //TODO check on\n const lastTransaction = this._getCurrentTransaction();\n if(!lastTransaction || lastTransaction.actions.length == 0) return false;\n const lastAction = lastTransaction.actions[lastTransaction.actions.length - 1];\n return lastAction.tryMerge(sender, propertyName, newValue);\n }\n private _ignoreChanges = false;\n private _isExecuting = false;\n private _preparingTransaction: Transaction = null;\n private _transactions: Transaction[] = [];\n private _currentTransactionIndex: number = -1;\n\n public isCopyObject(sender: Base) { }\n private _cutOffTail() {\n if (this._currentTransactionIndex + 1 !== this._transactions.length) {\n this._transactions.length = this._currentTransactionIndex + 1;\n }\n }\n private get isIgnoring(): boolean {\n return this._ignoreChanges || this._isExecuting;\n }\n private _addTransaction(transaction: Transaction) {\n if (transaction.isEmpty()) return;\n\n this._cutOffTail();\n this._transactions.push(transaction);\n this._currentTransactionIndex++;\n this.canUndoRedoCallback();\n }\n private _getCurrentTransaction() {\n const index = this._currentTransactionIndex;\n const currentTransaction = this._transactions[index];\n return currentTransaction;\n }\n private _getNextTransaction() {\n const index = this._currentTransactionIndex;\n const nextTransaction = this._transactions[index + 1];\n return nextTransaction;\n }\n private notifyChangesFinished(transaction: Transaction, isUndo: boolean = false) {\n if (transaction.actions.length > 0 && transaction.actions[0]) {\n !!this.changesFinishedCallback &&\n this.changesFinishedCallback(transaction.actions[0].getChanges(isUndo));\n }\n }\n canUndoRedoCallback() { }\n private transactionCounter = 0;\n startTransaction(name: string) {\n if(this.isIgnoring) return;\n this.transactionCounter++;\n if (this._preparingTransaction) return;\n this._preparingTransaction = new Transaction(name);\n }\n stopTransaction() {\n if(this.isIgnoring) return;\n if (this.transactionCounter > 0) {\n this.transactionCounter--;\n }\n if (!this._preparingTransaction || this.transactionCounter > 0) return;\n this._addTransaction(this._preparingTransaction);\n if (this.transactionCounter === 0) {\n this.notifyChangesFinished(this._preparingTransaction);\n }\n this._preparingTransaction = null;\n }\n setUndoCallbackForTransaction(callback: () => void) {\n this._preparingTransaction.undoCallback = callback;\n }\n public get isProcessingUndoRedo(): boolean {\n return this._isExecuting === true;\n }\n canUndo() {\n return !!this._getCurrentTransaction();\n }\n undo() {\n const currentTransaction = this._getCurrentTransaction();\n if (!this.canUndo()) return;\n\n this._isExecuting = true;\n currentTransaction.rollback();\n this._isExecuting = false;\n\n this._currentTransactionIndex--;\n this.canUndoRedoCallback();\n this.notifyChangesFinished(currentTransaction, true);\n }\n canRedo() {\n return !!this._getNextTransaction();\n }\n redo() {\n const nextTransaction = this._getNextTransaction();\n if (!this.canRedo()) return;\n\n this._isExecuting = true;\n nextTransaction.apply();\n this._isExecuting = false;\n\n this._currentTransactionIndex++;\n this.canUndoRedoCallback();\n this.notifyChangesFinished(nextTransaction);\n }\n suspend() {\n this._ignoreChanges = true;\n }\n resume() {\n this._ignoreChanges = false;\n }\n public changesFinishedCallback: (changes: IUndoRedoChange) => void;\n}\n\nexport class Transaction {\n constructor(private _name: string) { }\n\n private _actions: UndoRedoAction[] = [];\n\n public undoCallback: () => void = () => {};\n\n apply() {\n const actions = this._actions;\n for (let index = 0; index < actions.length; index++) {\n const action = actions[index];\n action.apply();\n }\n }\n\n rollback() {\n const actions = this._actions;\n for (let index = actions.length - 1; index >= 0; index--) {\n const action = actions[index];\n action.rollback();\n }\n this.undoCallback();\n }\n\n addAction(action: any) {\n this._actions.push(action);\n }\n\n isEmpty(): boolean {\n return this._actions.length === 0;\n }\n\n get actions() {\n return this._actions;\n }\n}\n\nexport interface IUndoRedoAction {\n apply: () => void;\n rollback: () => void;\n getChanges(): IUndoRedoChange;\n tryMerge(sender: Base, propertyName: string, newValue: any): boolean;\n}\n\nexport class UndoRedoAction implements IUndoRedoAction {\n constructor(\n private _propertyName: string,\n private _oldValue: any,\n private _newValue: any,\n private _sender: Base\n ) { }\n\n apply(): void {\n this._sender[this._propertyName] = this._newValue;\n }\n\n rollback(): void {\n this._sender[this._propertyName] = this._oldValue;\n }\n\n getChanges(isUndo: boolean = false): IUndoRedoChange {\n return {\n object: this._sender,\n propertyName: this._propertyName,\n oldValue: isUndo? this._newValue : this._oldValue,\n newValue: isUndo? this._oldValue : this._newValue\n };\n }\n tryMerge(sender: Base, propertyName: string, newValue: any): boolean {\n if(sender !== this._sender || propertyName !== this._propertyName || newValue == this._oldValue) return false;\n const prop = Serializer.findProperty(sender.getType(), propertyName);\n if(!prop || (prop.type !== \"string\" && prop.type !== \"text\")) return false;\n this._newValue = newValue;\n return true;\n }\n}\n\nexport class UndoRedoArrayAction implements IUndoRedoAction {\n private _index: number = 0;\n private _itemsToAdd: any[] = [];\n private _deletedItems: any[] = [];\n\n constructor(\n private _propertyName: string,\n private _sender: Base,\n arrayChanges: ArrayChanges\n ) {\n this._index = arrayChanges.index;\n this._itemsToAdd = arrayChanges.itemsToAdd;\n this._deletedItems = arrayChanges.deletedItems;\n }\n apply(): void {\n this.rollback();\n }\n rollback(): void {\n const array = this._sender[this._propertyName];\n const index = this._index;\n const deleteCount = this._itemsToAdd.length;\n const itemsToAdd = [].concat(this._deletedItems);\n\n this._deletedItems = array.splice.apply(\n array,\n [index, deleteCount].concat(itemsToAdd)\n );\n this._itemsToAdd = [].concat(itemsToAdd);\n }\n getChanges(): IUndoRedoChange {\n return {\n object: this._sender,\n propertyName: this._propertyName,\n oldValue: this._deletedItems,\n newValue: this._itemsToAdd\n };\n }\n tryMerge(sender: Base, propertyName: string, newValue: any): boolean {\n return false;\n }\n}\n","// extracted by mini-css-extract-plugin","export var propertyGridCss = {\n root: \"spg-root-modern\",\n container: \"spg-container-modern\",\n header: \"spg-title spg-container-modern__title\",\n body: \"spg-body\",\n bodyEmpty: \"spg-body spg-body--empty\",\n footer: \"spg-footer spg-body__footer spg-clearfix\",\n title: \"\",\n description: \"\",\n logo: \"spg-logo\",\n logoImage: \"spg-logo__image\",\n headerText: \"spg-header__text\",\n navigationButton: \"\",\n completedPage: \"spg-completedpage\",\n navigation: {\n complete: \"spg-btn spg-footer__complete-btn\",\n prev: \"spg-btn spg-footer__prev-btn\",\n next: \"spg-btn spg-footer__next-btn\",\n start: \"spg-btn spg-footer__start-btn\",\n preview: \"spg-btn spg-footer__preview-btn\",\n edit: \"spg-btn spg-footer__edit-btn\"\n },\n panel: {\n title: \"spg-title spg-panel__title\",\n titleExpandable: \"spg-panel__title--expandable\",\n titleOnExpand: \"spg-panel__title--expanded\",\n titleOnError: \"spg-panel__title--error\",\n description: \"spg-description spg-panel__description\",\n container: \"spg-panel spg-row__panel\",\n content: \"spg-panel__content\",\n icon: \"spg-panel__icon\",\n iconExpanded: \"spg-panel__icon--expanded\",\n footer: \"spg-panel__footer\",\n requiredText: \"spg-panel__required-text\"\n },\n paneldynamic: {\n root: \"spg-paneldynamic\",\n navigation: \"spg-paneldynamic__navigation\",\n title: \"spg-title spg-question__title\",\n button: \"spg-btn\",\n buttonRemove: \"spg-paneldynamic__remove-btn\",\n buttonAdd: \"spg-paneldynamic__add-btn\",\n progressTop: \"spg-paneldynamic__progress spg-paneldynamic__progress--top\",\n progressBottom:\n \"spg-paneldynamic__progress spg-paneldynamic__progress--bottom\",\n buttonPrev: \"spg-paneldynamic__prev-btn\",\n buttonNext: \"spg-paneldynamic__next-btn\",\n progressContainer: \"spg-paneldynamic__progress-container\",\n progress: \"spg-progress\",\n progressBar: \"spg-progress__bar\",\n progressText: \"spg-paneldynamic__progress-text\",\n separator: \"spg-paneldynamic__separator\"\n },\n progress: \"spg-progress spg-body__progress\",\n progressBar: \"spg-progress__bar\",\n progressText: \"spg-progress__text\",\n progressTextInBar: \"spg-hidden\",\n page: {\n root: \"spg-page spg-body__page\",\n title: \"spg-title spg-page__title\",\n description: \"spg-description spg-page__description\"\n },\n pageTitle: \"spg-title spg-page__title\",\n pageDescription: \"spg-description spg-page__description\",\n row: \"spg-row spg-clearfix\",\n rowMultiple: \"spg-row--multiple\",\n question: {\n mainRoot: \"spg-question spg-row__question\",\n flowRoot: \"spg-question spg-row__question spg-row__question--flow\",\n asCell: \"spg-table__cell\",\n header: \"spg-question__header\",\n headerLeft: \"spg-question__header--location--left\",\n headerTop: \"spg-question__header--location--top\",\n headerBottom: \"spg-question__header--location--bottom\",\n content: \"spg-question__content\",\n contentLeft: \"spg-question__content--left\",\n titleLeftRoot: \"spg-question--location--left\",\n titleOnAnswer: \"spg-question__title--answer\",\n titleOnError: \"spg-question__title--error\",\n title: \"spg-title spg-question__title\",\n requiredText: \"spg-question__required-text\",\n number: \"spg-question__num\",\n description: \"spg-description spg-question__description\",\n descriptionUnderInput: \"spg-description spg-question__description\",\n comment: \"spg-comment\",\n required: \"spg-question--required\",\n titleRequired: \"spg-question__title--required\",\n indent: 0,\n footer: \"spg-question__footer\",\n formGroup: \"spg-question__form-group\",\n hasError: \"\",\n disabled: \"spg-question--disabled\"\n },\n image: { root: \"spg-image\", image: \"sv_image_image\" },\n error: {\n root: \"spg-question__erbox\",\n icon: \"\",\n item: \"\",\n locationTop: \"spg-question__erbox--location--top\",\n locationBottom: \"spg-question__erbox--location--bottom\"\n },\n checkbox: {\n root: \"spg-selectbase\",\n item: \"spg-item spg-checkbox spg-selectbase__item\",\n itemSelectAll: \"spg-checkbox--selectall\",\n itemNone: \"spg-checkbox--none\",\n itemDisabled: \"spg-item--disabled spg-checkbox--disabled\",\n itemChecked: \"spg-checkbox--checked\",\n itemHover: \"spg-checkbox--allowhover\",\n itemInline: \"spg-selectbase__item--inline\",\n label: \"spg-selectbase__label\",\n // label: \"spg-checkbox\",\n itemSvgIconId: \"#icon-v2check\",\n labelChecked: \"\",\n //itemControl: \"spg-visuallyhidden spg-item__control\",\n itemControl: \"spg-checkbox__control\",\n itemDecorator: \"spg-checkbox__svg\",\n //itemDecorator: \"spg-checkbox__hidden\",\n //controlLabel: \"spg-item__control-label\",\n controlLabel: \"spg-checkbox__caption\",\n materialDecorator: \"spg-checkbox__rectangle\",\n //materialDecorator: \"spg-item__decorator spg-checkbox__decorator\",\n other: \"spg-comment spg-question__other\",\n column: \"spg-selectbase__column\"\n },\n radiogroup: {\n root: \"spg-selectbase\",\n item: \"spg-item spg-radio spg-selectbase__item\",\n itemInline: \"spg-selectbase__item--inline\",\n label: \"spg-selectbase__label\",\n labelChecked: \"\",\n itemDisabled: \"spg-item--disabled spg-radio--disabled\",\n itemChecked: \"spg-radio--checked\",\n itemHover: \"spg-radio--allowhover\",\n itemControl: \"spg-visuallyhidden spg-item__control\",\n itemDecorator: \"spg-item__svg spg-radio__svg\",\n controlLabel: \"spg-item__control-label\",\n materialDecorator: \"spg-item__decorator spg-radio__decorator\",\n other: \"spg-comment spg-question__other\",\n clearButton: \"spg-btn spg-selectbase__clear-btn\",\n column: \"spg-selectbase__column\"\n },\n boolean: {\n mainRoot: \"spg-question spg-row__question spg-question--boolean\",\n rootCheckbox: \"spg-selectbase\",\n checkboxItem: \"spg-checkbox\",\n checkboxItemChecked: \"spg-checkbox--checked\",\n checkboxitemIndeterminate: \"spg-checkbox--indeterminate\",\n checkboxItemDisabled: \"spg-checkbox--disabled\",\n svgIconId: \"#icon-v2check\",\n checkboxLabel: \"spg-selectbase__label\",\n controlCheckbox: \"spg-checkbox__control\",\n checkboxControlLabel: \"spg-checkbox__caption\",\n checkboxItemDecorator: \"spg-checkbox__svg\",\n checkboxMaterialDecorator: \"spg-checkbox__rectangle\"\n },\n text: {\n root: \"spg-input spg-text\",\n small: \"spg-row__question--small\",\n content: \"spg-question__content spg-text__content\",\n remainingCharacterCounter: \"spg-remaining-character-counter\",\n onError: \"spg-input--error\"\n },\n multipletext: {\n root: \"spg-multipletext\",\n item: \"spg-multipletext__item\",\n itemTitle: \"spg-multipletext__item-title\",\n content: \"spg-multipletext__content spg-text__content\",\n row: \"spg-multipletext__row\",\n cell: \"spg-multipletext__cell\"\n },\n dropdown: {\n root: \"\",\n popup: \"\",\n small: \"spg-row__question--small sd-row__question--small\",\n control: \"spg-input spg-dropdown sd-input sd-dropdown\",\n filterStringInput: \"sd-dropdown__filter-string-input spg-dropdown__filter-string-input\",\n selectWrapper: \"\",\n other: \"spg-comment spg-question__other\",\n onError: \"spg-input--error\"\n },\n imagepicker: {\n root: \"spg-imagepicker\",\n item: \"spg-imagepicker__item\",\n itemInline: \"spg-imagepicker__item--inline\",\n itemChecked: \"spg-imagepicker__item--checked\",\n itemDisabled: \"spg-imagepicker__item--disabled\",\n itemHover: \"spg-imagepicker__item--allowhover\",\n label: \"spg-imagepicker__label\",\n itemControl: \"spg-imagepicker__control\",\n image: \"spg-imagepicker__image\",\n itemText: \"spg-imagepicker__text\",\n clearButton: \"spg-btn\",\n other: \"spg-comment spg-question__other\"\n },\n matrix: {\n tableWrapper: \"spg-matrix spg-table-wrapper\",\n root: \"spg-table\",\n rowError: \"spg-matrix__row--error\",\n cell: \"spg-table__cell spg-matrix__cell\",\n headerCell: \"spg-table__cell spg-table__cell--header\",\n label: \"spg-item spg-radio spg-matrix__label\",\n itemValue: \"spg-visuallyhidden spg-item__control spg-radio__control\",\n itemChecked: \"spg-radio--checked\",\n itemDisabled: \"spg-item--disabled spg-radio--disabled\",\n itemHover: \"spg-radio--allowhover\",\n materialDecorator: \"spg-item__decorator spg-radio__decorator\",\n itemDecorator: \"spg-item__svg spg-radio__svg\",\n cellText: \"spg-matrix__text\",\n cellTextSelected: \"spg-matrix__text--checked\",\n cellTextDisabled: \"spg-matrix__text--disabled\"\n },\n matrixdropdown: {\n tableWrapper: \"spg-table-wrapper\",\n root: \"spg-table\",\n cell: \"spg-table__cell\",\n headerCell: \"spg-table__cell spg-table__cell--header\"\n },\n matrixdynamic: {\n tableWrapper: \"spg-table-wrapper\",\n root: \"spg-table spg-matrixdynamic\",\n content: \"spg-matrixdynamic__content spg-text__content\",\n cell: \"spg-table__cell\",\n headerCell: \"spg-table__cell spg-table__cell--header\",\n button: \"spg-btn\",\n detailRow: \"spg-table__row spg-table__row--detail\",\n detailButton: \"spg-table__cell--detail-button\",\n detailButtonExpanded: \"spg-table__cell--detail-button--expanded\",\n detailIcon: \"spg-detail-panel__icon\",\n detailIconExpanded: \"spg-detail-panel__icon--expanded\",\n detailPanelCell: \"spg-table__cell--detail-panel\",\n actionsCell: \"spg-table__cell spg-table__cell--actions\",\n buttonAdd: \"spg-matrixdynamic__add-btn spg-action-button spg-action-button--large\",\n buttonRemove: \"spg-matrixdynamic__remove-btn\",\n iconAdd: \"\",\n iconRemove: \"\",\n dragElementDecorator: \"spg-drag-element__svg\",\n iconDragElement: \"#icon-drag-area-indicator\",\n iconDrag: \"spg-matrixdynamic__drag-element\",\n footer: \"\",\n dragDropGhostPositionTop: \"spg-matrixdynamic__drag-drop-ghost-position-top\",\n dragDropGhostPositionBottom: \"spg-matrixdynamic__drag-drop-ghost-position-bottom\",\n emptyRowsSection: \"spg-matrixdynamic__placeholder\",\n emptyRowsText: \"spg-matrixdynamic__placeholder-text\",\n cellQuestionWrapper: \"spg-table__question-wrapper\"\n },\n rating: {\n root: \"spg-rating\",\n item: \"spg-rating__item\",\n selected: \"spg-rating__item--selected\",\n minText: \"spg-rating__min-text\",\n itemText: \"spg-rating__item-text\",\n maxText: \"spg-rating__max-text\",\n disabled: \"spg-rating--disabled\"\n },\n comment: {\n root: \"spg-input spg-comment\",\n content: \"spg-question__content spg-comment__content\",\n remainingCharacterCounter: \"spg-remaining-character-counter\",\n small: \"spg-row__question--small\"\n },\n expression: \"\",\n file: {\n root: \"spg-file\",\n other: \"spg-comment spg-question__other\",\n placeholderInput: \"spg-visuallyhidden\",\n preview: \"spg-file__preview\",\n fileSign: \"spg-hidden\",\n fileSignBottom: \"spg-file__sign\",\n fileDecorator: \"spg-file__decorator\",\n fileInput: \"spg-visuallyhidden\",\n noFileChosen: \"spg-description spg-file__no-file-chosen\",\n chooseFile: \"spg-btn spg-file__choose-btn\",\n disabled: \"spg-file__choose-btn--disabled\",\n removeButton: \"spg-hidden\",\n removeButtonBottom: \"spg-btn spg-file__clean-btn\",\n removeFile: \"spg-hidden\",\n removeFileSvg: \"spg-file__remove-svg\",\n wrapper: \"spg-file__wrapper\"\n },\n signaturepad: {\n root: \"spg-signaturepad sjs_sp_container\",\n small: \"spg-row__question--small\",\n controls: \"sjs_sp_controls\",\n clearButton: \"sjs_sp_clear\"\n },\n propertygrid_bindings: {\n content: \"spg-question__content spg-question__nopadding spg-question-group\"\n },\n propertygrid_restfull: {\n content: \"spg-question__content spg-question__nopadding\"\n },\n saveData: {\n root: \"\",\n saving: \"\",\n error: \"\",\n success: \"\",\n saveAgainButton: \"\"\n },\n window: {\n root: \"sv_window\",\n body: \"sv_window_content\",\n header: {\n root: \"sv_window_title\",\n title: \"\",\n button: \"\",\n buttonExpanded: \"\",\n buttonCollapsed: \"\"\n }\n },\n actionBar: {\n root: \"spg-action-bar\",\n item: \"spg-action-button\",\n itemPressed: \"spg-action-button--pressed\",\n itemAsIcon: \"spg-action-button--icon\",\n itemIcon: \"spg-action-button__icon\",\n itemTitle: \"spg-action-button__title\",\n },\n};\n","import { ISurveyCreatorOptions } from \"src/creator-settings\";\nimport { JsonObjectProperty, Base, ComponentCollection, QuestionCompositeModel } from \"survey-core\";\nimport { editorLocalization } from \"../editorLocalization\";\nimport { PropertyGridEditor, PropertyGridEditorCollection } from \".\";\n\nvar json = {\n name: \"propertygrid_bindings\",\n showInToolbox: false,\n createElements: function () {\n //tell ComponentCollection that it is composite question\n }\n};\n\nif (!ComponentCollection.Instance.getCustomQuestionByName(json.name)) {\n ComponentCollection.Instance.add(json as any);\n}\n\nexport class PropertyGridEditorBindings extends PropertyGridEditor {\n\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"bindings\";\n }\n public getJSON(): any {\n const res = {\n type: \"propertygrid_bindings\",\n };\n return res;\n }\n public onCreated(obj: Base, question: QuestionCompositeModel, prop: JsonObjectProperty, options: ISurveyCreatorOptions) {\n question.contentPanel.fromJSON({ elements: this.getQuestions(obj, options) });\n question.valueFromDataCallback = (value: any): any => {\n if(!value && obj.bindings.getNames().length > 0) {\n const result: { [index: string]: any } = {};\n for(const bindingName of obj.bindings.getNames()) {\n result[bindingName] = obj.bindings.getValueNameByPropertyName(bindingName);\n }\n return result;\n }\n return value;\n };\n }\n private getQuestions(obj: Base, options: ISurveyCreatorOptions): Array<object> {\n const res = [];\n for (const bindingName of obj.bindings.getNames()) {\n res.push(this.getBindingJSON(bindingName, obj, options));\n }\n return res;\n }\n private getBindingJSON(bindingName: string, obj: Base, options: ISurveyCreatorOptions): { [index: string]: any } {\n const prop = new JsonObjectProperty(null, \"value\");\n prop.type = \"questionvalue\";\n const json = PropertyGridEditorCollection.getJSON(obj, prop, options);\n json.titleLocation = \"left\";\n json.descriptionLocation = \"hidden\";\n json.minWidth = \"0px\";\n json.name = bindingName;\n json.title = editorLocalization.getPropertyName(bindingName);\n return json;\n }\n}\n\nPropertyGridEditorCollection.register(new PropertyGridEditorBindings());\n\n","import {\n ItemValue,\n QuestionMatrixDropdownModel,\n QuestionMatrixModel,\n SurveyModel,\n} from \"survey-core\";\nimport { ISurveyCreatorOptions, EmptySurveyCreatorOptions } from \"../creator-settings\";\nimport { editorLocalization } from \"../editorLocalization\";\nimport { PropertyEditorSetupValue } from \"./index\";\n\nexport class CellsEditor extends PropertyEditorSetupValue {\n private editMatrixValue: QuestionMatrixDropdownModel;\n constructor(\n public matrix: QuestionMatrixModel,\n options: ISurveyCreatorOptions = null\n ) {\n super(options);\n this.editMatrixValue = <QuestionMatrixDropdownModel>(\n this.editSurvey.getQuestionByName(\"question\")\n );\n this.buildColumns();\n this.buildRows();\n this.editMatrix.value = this.matrix.cells.getJson();\n }\n protected getSurveyJSON(): any {\n return {\n elements: [\n {\n type: \"matrixdropdown\",\n name: \"question\",\n cellType: \"comment\",\n },\n ],\n };\n }\n protected getSurveyCreationReason(): string {\n return \"cells-editor\";\n }\n\n public get editMatrix(): QuestionMatrixDropdownModel {\n return this.editMatrixValue;\n }\n public apply(): boolean {\n this.matrix.cells.setJson(this.editMatrix.value);\n return true;\n }\n private buildColumns() {\n var columns = this.matrix.columns;\n for (var i = 0; i < columns.length; i++) {\n this.editMatrix.addColumn(columns[i].value, columns[i].text);\n }\n }\n private buildRows() {\n this.editMatrix.rows.push(\n new ItemValue(\n \"default\",\n editorLocalization.getString(\"pe.cellsDefaultRow\")\n )\n );\n var rows = this.matrix.rows;\n for (var i = 0; i < rows.length; i++) {\n this.editMatrix.rows.push(new ItemValue(rows[i].value, rows[i].text));\n }\n }\n}\n","import { SurveyModel, Serializer, ConditionsParser, QuestionPanelDynamicModel, Operand, UnaryOperand, BinaryOperand, Variable, Const, ArrayOperand, ItemValue, PanelModel, Helpers, Base, JsonObject, Question, QuestionCommentModel, FunctionFactory, QuestionDropdownModel, QuestionMatrixDropdownModelBase } from \"survey-core\";\nimport { ISurveyCreatorOptions, settings } from \"../creator-settings\";\nimport { editorLocalization } from \"../editorLocalization\";\nimport { SurveyHelper } from \"../survey-helper\";\nimport { PropertyEditorSetupValue } from \"./index\";\nimport { assignDefaultV2Classes, wrapTextByCurlyBraces } from \"../utils/utils\";\nimport { logicCss } from \"../components/tabs/logic-theme\";\nimport { getLogicString } from \"../components/tabs/logic-types\";\n\nexport class ConditionEditorItem {\n public conjunction: string = \"and\";\n public questionName: string;\n public operator: string = settings.logic.defaultOperator;\n public value: any;\n}\nexport class SurveyConditionEditorItem extends ConditionEditorItem {\n public constructor(public survey: SurveyModel) {\n super();\n }\n public getOperatorText(): string {\n const op = this.operator;\n if (op == \"equal\") return \"=\";\n if (op == \"notequal\") return \"<>\";\n if (op == \"greater\") return \">\";\n if (op == \"less\") return \"<\";\n if (op == \"greaterorequal\") return \">=\";\n if (op == \"lessorequal\") return \"<=\";\n return op;\n }\n public getValueText(): string {\n const val = this.value;\n if (!val) return val;\n if (!Array.isArray(val)) return this.valToText(val);\n let res = \"[\";\n for (let i = 0; i < val.length; i++) {\n res += this.valToText(val[i]);\n if (i < val.length - 1) res += \", \";\n }\n res += \"]\";\n return res;\n }\n public get isValueRequired(): boolean {\n return this.operator !== \"empty\" && this.operator !== \"notempty\";\n }\n public get isReady(): boolean {\n return (\n !!this.questionName &&\n (!this.isValueRequired || !Helpers.isValueEmpty(this.value))\n );\n }\n public toExpression(): string {\n let text = wrapTextByCurlyBraces(this.getQuestionValueByName()) + \" \" + this.getOperatorText();\n if (this.isValueRequired) {\n text += \" \" + this.getValueText();\n }\n return text;\n }\n private getQuestionValueByName(): string {\n const question = this.survey.getQuestionByName(this.questionName);\n if (\n question &&\n question.name != question.getValueName() &&\n this.questionName != question.getValueName()\n ) {\n return this.questionName.replace(question.name, question.getValueName());\n }\n return this.questionName;\n }\n private valToText(val: any): string {\n if (val == \"true\" || val == \"false\") return val;\n if (this.isNumeric(val)) return val;\n if (val[0] == \"[\") return val.replace(/(?!^)(['])(?!$)/g, \"\\\\$1\");\n if (!this.isQuote(val[0])) val = \"'\" + val;\n if (!this.isQuote(val[val.length - 1])) val = val + \"'\";\n return val.replace(/(?!^)(['\"])(?!$)/g, \"\\\\$1\");\n }\n private isNumeric(val: any): boolean {\n if (\n typeof val === \"string\" &&\n val.length > 1 &&\n val[0] === \"0\" &&\n val[1] !== \"x\"\n )\n return false;\n return !isNaN(val);\n }\n private isQuote(ch: string): boolean {\n return ch == \"'\" || ch == '\"';\n }\n}\n\nexport class ConditionEditorItemsBuilder {\n public constructor(private hasValue: (name: string) => boolean = null) { }\n public build(text: string): Array<ConditionEditorItem> {\n if (!text) return [];\n let operand = null;\n operand = new ConditionsParser().parseExpression(text);\n if (!operand) return [];\n return this.buildEditorItems(operand);\n }\n private buildEditorItems(operand: Operand): Array<ConditionEditorItem> {\n let res = [];\n if (!this.buildEditorItemsCore(operand, res, \"\")) {\n res = [];\n }\n return res;\n }\n private buildEditorItemsCore(operand: Operand, res: Array<ConditionEditorItem>, parentConjunction: string): boolean {\n if (operand.getType() == \"unary\")\n return this.buildEditorItemsAddUnaryOperand(<UnaryOperand>operand, res);\n if (operand.getType() !== \"binary\") return false;\n const op = <BinaryOperand>operand;\n if (op.isArithmetic && !op.isConjunction) return false;\n if (op.isConjunction)\n return this.buildEditorItemsAddConjunction(op, res, parentConjunction);\n return this.buildEditorItemsAddBinaryOperand(op, res);\n }\n private buildEditorItemsAddConjunction(op: BinaryOperand, res: Array<ConditionEditorItem>, parentConjunction: string): boolean {\n const conjunction = op.conjunction;\n if (conjunction == \"or\" && !!parentConjunction && parentConjunction != conjunction)\n return false;\n if (!this.buildEditorItemsCore(op.leftOperand, res, conjunction))\n return false;\n const conjunctionIndex = res.length;\n if (!this.buildEditorItemsCore(op.rightOperand, res, conjunction))\n return false;\n res[conjunctionIndex].conjunction = op.conjunction;\n return true;\n }\n private buildEditorItemsAddBinaryOperand(op: BinaryOperand, res: Array<ConditionEditorItem>): boolean {\n const variableOperand = <Variable>this.getOperandByType(op, \"variable\");\n const arrayValue = this.getArrayValueFromOperand(op);\n const constOperand = !arrayValue ? <Const>this.getOperandByType(op, \"const\") : null;\n if (\n !variableOperand ||\n (!constOperand && !arrayValue && this.canShowValueByOperator(op.operator))\n )\n return false;\n if (!this.isVariableInSurvey(variableOperand.variable)) return false;\n const item = new ConditionEditorItem();\n item.questionName = variableOperand.variable;\n item.operator = op.leftOperand !== variableOperand ? this.getOppositeOperator(op.operator) : op.operator;\n if (!!arrayValue) {\n item.value = arrayValue;\n }\n if (!!constOperand) {\n item.value = constOperand.correctValue;\n }\n res.push(item);\n return true;\n }\n private isVariableInSurvey(variable: string): boolean {\n return !!this.hasValue ? this.hasValue(variable) : true;\n }\n private getArrayValueFromOperand(op: BinaryOperand): Array<any> {\n const arrayOperand = <ArrayOperand>this.getOperandByType(op, \"array\");\n if (!arrayOperand || !arrayOperand.values) return null;\n const valuesOperand = arrayOperand.values;\n if (!Array.isArray(valuesOperand) || valuesOperand.length == 0) return null;\n const res = [];\n for (let i = 0; i < valuesOperand.length; i++) {\n const opConst = valuesOperand[i];\n if (!opConst) continue;\n if (opConst.getType() != \"const\") return null;\n res.push((<Const>opConst).correctValue);\n }\n if (res.length == 0) return null;\n return res;\n }\n private buildEditorItemsAddUnaryOperand(op: UnaryOperand, res: Array<ConditionEditorItem>): boolean {\n const operator = op.operator;\n if (operator !== \"empty\" && operator != \"notempty\") return false;\n const operand = op.expression;\n if (operand == null || operand.getType() != \"variable\") return false;\n const questionName = (<Variable>operand).variable;\n if (!this.isVariableInSurvey(questionName)) return false;\n const item = new ConditionEditorItem();\n item.questionName = questionName;\n item.operator = operator;\n res.push(item);\n return true;\n }\n private getOppositeOperator(operator: string): string {\n if (operator == \"less\") return \"greater\";\n if (operator == \"greater\") return \"less\";\n if (operator == \"lessorequal\") return \"greaterorequal\";\n if (operator == \"greaterorequal\") return \"lessorequal\";\n return operator;\n }\n private getOperandByType(op: BinaryOperand, opType: string): Operand {\n if (!op.rightOperand) return null;\n if (\n op.leftOperand.getType() !== opType &&\n op.rightOperand.getType() !== opType\n )\n return null;\n if (\n op.leftOperand.getType() == opType &&\n op.rightOperand.getType() == opType\n )\n return null;\n return op.leftOperand.getType() == opType\n ? op.leftOperand\n : op.rightOperand;\n }\n private canShowValueByOperator(operator: string) {\n return operator != \"empty\" && operator != \"notempty\";\n }\n}\n\nfunction questionValueVisibleIf(params: any): boolean {\n if (params.length !== 2) return false;\n if (!params[0] || !params[1]) return false;\n return params[1] !== \"empty\" && params[1] !== \"notempty\";\n}\n\nFunctionFactory.Instance.register(\"questionValueVisibleIf\", questionValueVisibleIf);\n\nexport class ConditionEditor extends PropertyEditorSetupValue {\n public static canParseExpression(text: string): boolean {\n if (!text) return true;\n return !!new ConditionsParser().parseExpression(text);\n }\n public static canBuildExpression(text: string): boolean {\n if (!text) return true;\n if (!ConditionEditor.canParseExpression(text)) return false;\n return new ConditionEditorItemsBuilder().build(text).length > 0;\n }\n public static isOperatorEnabled(qType: string, operatorTypes: Array<string>): boolean {\n if (!qType) return true;\n if (!operatorTypes || operatorTypes.length == 0) return true;\n const contains = [];\n const notContains = [];\n for (let i = 0; i < operatorTypes.length; i++) {\n let name = operatorTypes[i];\n if (name[0] == \"!\") {\n notContains.push(name.substring(1));\n } else {\n contains.push(name);\n }\n }\n return ConditionEditor.isClassContains(qType, contains, notContains);\n }\n public static isClassContains(qType: string, contains: Array<string>, notContains: Array<string>): boolean {\n let classInfo = Serializer.findClass(qType);\n while (!!classInfo) {\n if (contains.indexOf(classInfo.name) > -1) return true;\n if (notContains.indexOf(classInfo.name) > -1) return false;\n classInfo = !!classInfo.parentName ? Serializer.findClass(classInfo.parentName) : null;\n }\n return contains.length == 0;\n }\n private objectValue: Base;\n private surveyValue: SurveyModel;\n private contextValue: Question;\n private panelValue: QuestionPanelDynamicModel;\n private textEditorValue: QuestionCommentModel;\n private addConditionQuestionsHash = {};\n private isModalValue: boolean = true;\n public allConditionQuestions: Array<ItemValue>;\n public onContextChanged: (context: Question) => void;\n\n constructor(\n survey: SurveyModel,\n object: Base = null,\n options: ISurveyCreatorOptions = null,\n private propertyName = \"\"\n ) {\n super(options);\n this.surveyValue = survey;\n this.objectValue = object;\n this.panelValue = <QuestionPanelDynamicModel>(this.editSurvey.getQuestionByName(\"panel\"));\n this.textEditorValue = <QuestionCommentModel>(this.editSurvey.getQuestionByName(\"textEditor\"));\n if (!!this.options.maxLogicItemsInCondition) {\n this.panel.maxPanelCount = this.options.maxLogicItemsInCondition;\n }\n this.allConditionQuestions = this.createAllConditionQuestions();\n this.editSurvey.onValueChanged.add((sender, options) => {\n this.onValueChanged(options);\n });\n this.editSurvey.onDynamicPanelAdded.add((sender, options) => {\n this.onPanelAdded();\n });\n this.editSurvey.onDynamicPanelRemoved.add((sender, options) => {\n if (options.question.panelCount == 0) {\n options.question.addPanel();\n }\n if (this.panel.panelCount > 0)\n this.panel.panels[0].getQuestionByName(\"questionName\").titleLocation = \"left\";\n });\n this.editSurvey.onDynamicPanelItemValueChanged.add((sender, options) => {\n this.onPanelValueChanged(options.panel, options.name);\n });\n this.editSurvey.css = logicCss;\n this.editSurvey.onUpdateQuestionCssClasses.add((sender, options) => {\n this.onUpdateQuestionCssClasses(options);\n });\n this.text = !!this.object && this.propertyName ? this.object[this.propertyName] : \"\";\n this.updatePlaceholderVisibileIf();\n }\n public get title(): string {\n return this.panel.title;\n }\n public set title(val: string) {\n this.panel.title = val;\n this.textEditor.title = val;\n }\n public get isModal(): boolean {\n return this.isModalValue;\n }\n public set isModal(val: boolean) {\n if (val === this.isModalValue) return;\n this.isModalValue = val;\n this.updatePlaceholderVisibileIf();\n }\n protected updatePlaceholderVisibileIf() {\n if (!!this.panel) {\n let expression = \"\";\n if (this.isModal) {\n expression = \"{panel.questionName} empty and {panelIndex} == 0\";\n }\n this.panel[\"templateValue\"].getQuestionByName(\"placeholder\").visibleIf = expression;\n }\n }\n protected getSurveyJSON(): any {\n return {\n elements: [\n {\n type: \"paneldynamic\",\n titleLocation: \"hidden\",\n name: \"panel\",\n panelRemoveButtonLocation: \"right\",\n panelAddText: editorLocalization.getString(\"pe.addCondition\"),\n minPanelCount: 1,\n maxPanelCount: 1,\n startWithNewLine: false,\n templateElements: [\n {\n name: \"conjunction\",\n type: \"dropdown\",\n renderAs: \"logicoperator\",\n titleLocation: \"hidden\",\n showOptionsCaption: false,\n visibleIf: \"{panelIndex} > 0\",\n choices: [\n { value: \"and\", text: editorLocalization.getString(\"pe.and\") },\n { value: \"or\", text: editorLocalization.getString(\"pe.or\") }\n ]\n },\n {\n name: \"questionName\",\n type: \"dropdown\",\n renderAs: \"logicoperator\",\n title: editorLocalization.getString(\"pe.if\"),\n titleLocation: \"left\",\n showOptionsCaption: false,\n startWithNewLine: false,\n isRequired: true\n },\n {\n name: \"operator\",\n type: \"dropdown\",\n renderAs: \"logicoperator\",\n searchEnabled: false,\n titleLocation: \"hidden\",\n startWithNewLine: false,\n showOptionsCaption: false,\n isRequired: true,\n enableIf: \"{panel.questionName} notempty\"\n },\n {\n name: \"removeAction\",\n type: \"linkvalue\",\n titleLocation: \"hidden\",\n showOptionsCaption: false,\n visible: false,\n startWithNewLine: false,\n showValueInLink: false,\n allowClear: false,\n showClear: false\n },\n {\n name: \"questionValue\",\n type: \"text\",\n visible: false\n },\n {\n name: \"placeholder\",\n type: \"html\",\n visible: false,\n html: `<div class='svc-logic-placeholder'><span class=\"svc-logic-placeholder__text\">${editorLocalization.getString(\"pe.emptyLogicPopupMessage\")}<span></div>`\n }\n ]\n },\n {\n type: \"comment\",\n titleLocation: \"hidden\",\n name: \"textEditor\",\n textUpdateMode: \"onTyping\",\n placeholder: editorLocalization.getString(\"pe.emptyExpressionPlaceHolder\"),\n visible: false\n }\n ]\n };\n }\n /*\n protected createSurvey(): SurveyModel {\n const res = super.createSurvey();\n res.onUpdateQuestionCssClasses.add((sender: SurveyModel, options: any) => {\n if (options.question.name !== \"panel\") return;\n options.cssClasses.iconRemove = \"svc-creator-condition__editor-remove\";\n });\n return res;\n }\n*/\n protected getSurveyCreationReason(): string {\n return \"condition-builder\";\n }\n\n public get text(): string {\n return this.getText();\n }\n public set text(val: string) {\n if (!this.isModal && !ConditionEditor.canBuildExpression(val)) {\n this.panel.panelCount = 0;\n this.showTextEditor(val);\n } else {\n this.textEditor.value = val;\n this.showBuilder(val);\n }\n }\n public isModified(prevText: string): boolean {\n if (this.textEditor.visible) return prevText != this.text;\n const items = this.getEditorItems();\n const prevOp = !!prevText ? new ConditionsParser().parseExpression(prevText) : null;\n if (!prevOp) return !(items.length == 1 && !items[0].questionName);\n if (!this.isReady) return true;\n const curOp = new ConditionsParser().parseExpression(this.text);\n return !prevOp.isEqual(curOp);\n }\n public get context(): Question {\n return this.contextValue;\n }\n public set context(val: Question) {\n if (val === this.context) return;\n this.contextValue = val;\n this.updateNamesOnContextChanged();\n if (this.onContextChanged) {\n this.onContextChanged(val);\n }\n }\n private processText(val: string) {\n this.panel.panelCount = 0;\n const items = new ConditionEditorItemsBuilder().build(val);\n this.buildPanels(items);\n }\n public get survey(): SurveyModel {\n return this.surveyValue;\n }\n public get object(): Base {\n return this.objectValue;\n }\n public get panel(): QuestionPanelDynamicModel {\n return this.panelValue;\n }\n public get textEditor(): QuestionCommentModel {\n return this.textEditorValue;\n }\n public get isReady(): boolean {\n if (this.textEditor.visible) {\n return ConditionEditor.canParseExpression(this.textEditor.value);\n }\n for (let i = 0; i < this.panel.panels.length; i++) {\n if (!this.createEditorItemFromPanel(this.panel.panels[i]).isReady)\n return false;\n }\n return true;\n }\n public errorText: string;\n public hasErrorInUI(): boolean {\n const creator = (<any>this.survey).creator;\n if (!this.isReady) {\n this.hasErrors();\n this.errorText = getLogicString(\"expressionInvalid\");\n !!creator &&\n creator.notify(this.errorText, \"error\");\n return true;\n }\n return false;\n }\n\n public apply(): boolean {\n if (this.hasErrorInUI()) {\n return false;\n }\n if (!this.object || !this.propertyName) return;\n this.object[this.propertyName] = this.text;\n return true;\n }\n public setIsFastEntry(showTextEdit: boolean): void {\n if (showTextEdit) {\n this.showTextEditor(this.text);\n } else {\n if (!this.panel.visible) {\n this.showBuilder(this.text);\n }\n }\n }\n private buildPanels(items: Array<ConditionEditorItem>) {\n this.panel.panelCount = items.length;\n for (let i = 0; i < items.length; i++) {\n this.setItemToPanel(items[i], this.panel.panels[i]);\n }\n if (this.panel.panelCount == 0) {\n this.panel.addPanel();\n }\n }\n private isSettingPanelValues = false;\n private setupConditionOperator(item: ConditionEditorItem, panel: PanelModel) {\n const questionOperator = <QuestionDropdownModel>panel.getQuestionByName(\"operator\");\n questionOperator.choices = this.getOperators();\n questionOperator.value = item.operator;\n questionOperator.onOpened.add((_, opt) => {\n const json = this.getQuestionConditionJson(panel.getQuestionByName(\"questionName\").value, this.defaultOperator);\n const qType = !!json ? json.type : null;\n\n opt.choices.forEach((choice, index) => {\n const isOperatorEnabled = ConditionEditor.isOperatorEnabled(qType, settings.operators[choice.value]);\n choice.setIsEnabled(isOperatorEnabled);\n choice.setIsVisible(isOperatorEnabled);\n });\n });\n }\n private setupConditionQuestionName(item: ConditionEditorItem, panel: PanelModel) {\n const panelQuestionName = <QuestionDropdownModel>panel.getQuestionByName(\"questionName\");\n panelQuestionName.choices = this.getConditionQuestions();\n panelQuestionName.titleLocation = this.panel.panels.indexOf(panel) == 0 ? \"left\" : \"hidden\";\n const questionName = this.getQuestionNameToPanel(item.questionName);\n if (!!this.getConditionQuestion(questionName)) {\n panelQuestionName.value = questionName;\n }\n }\n private setupRemoveQuestion(panel: PanelModel) {\n const dynamicPanel: QuestionPanelDynamicModel = <QuestionPanelDynamicModel>(panel.getQuestionByName(\"removeAction\").parentQuestion);\n const removeQuestionQuestion: any = panel.getQuestionByName(\"removeAction\");\n removeQuestionQuestion.linkClickCallback = () => {\n if (!!dynamicPanel) {\n dynamicPanel.removePanelUI(panel);\n }\n };\n removeQuestionQuestion.linkSetButtonCssClasses = \"svc-logic-condition-remove svc-icon-remove\";\n removeQuestionQuestion.linkValueText = \"\";\n }\n private setItemToPanel(item: ConditionEditorItem, panel: PanelModel) {\n this.isSettingPanelValues = true;\n panel.getQuestionByName(\"conjunction\").value = item.conjunction;\n this.setupConditionOperator(item, panel);\n this.setupConditionQuestionName(item, panel);\n if (!!panel.getQuestionByName(\"questionValue\")) {\n panel.getQuestionByName(\"questionValue\").value = item.value;\n }\n this.setupRemoveQuestion(panel);\n this.isSettingPanelValues = false;\n }\n private getConditionQuestions(): Array<ItemValue> {\n if (!this.context) return this.allConditionQuestions;\n const res = [];\n for (var i = 0; i < this.allConditionQuestions.length; i++) {\n const item: any = this.allConditionQuestions[i];\n if (!item.context || item.context === this.context) {\n res.push(item);\n }\n }\n return res;\n }\n private getText(): string {\n if (this.textEditor.visible) return this.textEditor.value;\n let res = \"\";\n const items = this.getEditorItems();\n for (let i = 0; i < items.length; i++) {\n if (!items[i].isReady) break;\n if (!!res) {\n res += \" \" + items[i].conjunction + \" \";\n }\n res += items[i].toExpression();\n }\n return res;\n }\n private getEditorItems(): Array<SurveyConditionEditorItem> {\n const res = [];\n for (let i = 0; i < this.panel.panels.length; i++) {\n res.push(this.createEditorItemFromPanel(this.panel.panels[i]));\n }\n return res;\n }\n private createEditorItemFromPanel(panel: PanelModel): SurveyConditionEditorItem {\n const item = new SurveyConditionEditorItem(this.survey);\n item.conjunction = panel.getQuestionByName(\"conjunction\").value;\n item.questionName = this.getQuestionNameFromPanel(panel.getQuestionByName(\"questionName\").value);\n item.operator = panel.getQuestionByName(\"operator\").value;\n if (!!panel.getQuestionByName(\"questionValue\")) {\n item.value = panel.getQuestionByName(\"questionValue\").value;\n }\n return item;\n }\n private getQuestionNameFromPanel(name: string): string {\n if (!this.context || !name) return name;\n const prefix = this.context.getValueName() + \".\";\n return name.replace(prefix, \"\");\n }\n private getContextIndexInfo(name: string, prefix: string = \"\"): { index: number, name: string } {\n return SurveyHelper.getQuestionContextIndexInfo(name, prefix);\n }\n private getQuestionNameToPanel(name: string): string {\n if (!this.context || !name) return name;\n const indexInfo = this.getContextIndexInfo(name);\n if (!indexInfo || indexInfo.index !== 0) return name;\n return this.context.getValueName() + \".\" + name;\n }\n private getContextFromPanels(): Question {\n if (!!this.object) return null;\n for (var i = 0; i < this.panel.panels.length; i++) {\n const questionName = this.panel.panels[i].getQuestionByName(\"questionName\").value;\n const context = this.getContextByQuestionName(questionName);\n if (!!context) return context;\n }\n return null;\n }\n private updateNamesOnContextChanged() {\n for (var i = 0; i < this.panel.panels.length; i++) {\n this.panel.panels[i].getQuestionByName(\"questionName\").choices = this.getConditionQuestions();\n }\n }\n private getContextByQuestionName(name: string): Question {\n if (!name) return null;\n const indexInfo = this.getContextIndexInfo(name, \".\");\n if (!indexInfo) return null;\n name = name.substring(0, indexInfo.index);\n return <Question>this.survey.getQuestionByValueName(name);\n }\n private createAllConditionQuestions(): Array<ItemValue> {\n if (!this.survey) return [];\n const res = [];\n const questions = this.survey.getAllQuestions();\n const contextObject = this.getContextObject();\n let sortOrder = \"acs\";\n if (questions.length > 0) {\n for (let i = 0; i < questions.length; i++) {\n const question = questions[i];\n if (contextObject == question) continue;\n const context = contextObject ? contextObject : (!this.context || this.context === question);\n question.addConditionObjectsByContext(res, context);\n }\n sortOrder = this.options.onConditionQuestionsGetListCallback(this.propertyName, <any>this.object, this, res);\n for (let i = 0; i < res.length; i++) {\n res[i].value = res[i].name;\n let question = !!res[i].question ? res[i].question : res[i];\n if (!this.options.showTitlesInExpressions) {\n let name = res[i].name;\n let valueName = question.valueName;\n if (!!valueName && name.indexOf(valueName) == 0) {\n name = name.replace(valueName, question.name);\n }\n res[i].text = this.options.getObjectDisplayName(question, \"condition-editor\", \"condition\", name);\n }\n this.addConditionQuestionsHash[res[i].name] = question;\n }\n }\n const variableNames = this.survey.getVariableNames();\n this.addSurveyCalculatedValues(variableNames);\n this.addValuesIntoConditionQuestions(variableNames, res);\n if (sortOrder === \"asc\") {\n SurveyHelper.sortItems(res);\n }\n return res;\n }\n private getContextObject(): Base {\n if (this.object && this.object.isDescendantOf(\"itemvalue\")) {\n const res: any = (<ItemValue>this.object).locOwner;\n if (!!res && res.getType) {\n if (!!res.locOwner && res.locOwner.isDescendantOf(\"matrixdropdowncolumn\"))\n return res.locOwner;\n return res;\n }\n }\n return this.object;\n }\n private addValuesIntoConditionQuestions(values: Array<any>, res: Array<any>) {\n for (let i = 0; i < values.length; i++) {\n let name = !!values[i].name ? values[i].name : values[i];\n this.addConditionQuestionsHash[name] = this.getCalculatedValueQuestion();\n res.push({\n value: name,\n text: name,\n question: this.getCalculatedValueQuestion()\n });\n }\n }\n private addSurveyCalculatedValues(names: Array<any>) {\n this.survey.calculatedValues.forEach(item => {\n if(names.indexOf(item.name) < 0) names.push(item.name);\n });\n }\n private calculatedValueQuestion: Question = null;\n private getCalculatedValueQuestion(): Question {\n if (!this.calculatedValueQuestion) {\n this.calculatedValueQuestion = Serializer.createClass(\"text\");\n this.calculatedValueQuestion.name = \"question\";\n }\n return this.calculatedValueQuestion;\n }\n private getOperators(): Array<ItemValue> {\n const res = [];\n const ops = settings.operators;\n for (const name in ops) {\n res.push(new ItemValue(name, editorLocalization.getString(\"op.\" + name)));\n }\n return res;\n }\n private rebuildQuestionValue(panel: PanelModel) {\n if (!!panel.getQuestionByName(\"questionValue\")) {\n panel.getQuestionByName(\"questionValue\").clearValue();\n }\n let json = this.getQuestionConditionJson(\n panel.getQuestionByName(\"questionName\").value,\n panel.getQuestionByName(\"operator\").value\n );\n if (!json) {\n json = {\n type: \"text\"\n };\n }\n json.isRequired = true;\n SurveyHelper.updateQuestionJson(json);\n json.enableIf = \"{panel.questionName} notempty and {panel.operator} != 'empty' and {panel.operator} != 'notempty'\";\n let newQuestion = Serializer.createClass(json.type);\n delete json.type;\n new JsonObject().toObject(json, newQuestion);\n if (!newQuestion) {\n newQuestion = Serializer.createClass(\"text\", json);\n }\n const oldQuestion = panel.getQuestionByName(\"questionValue\");\n if (!!oldQuestion) {\n panel.removeElement(oldQuestion);\n }\n if (this.canShowQuestionValue(panel)) {\n const title = newQuestion.title;\n newQuestion.name = \"questionValue\";\n newQuestion.visibleIf = \"questionValueVisibleIf({panel.questionName}, {panel.operator})\";\n newQuestion.title = title;\n newQuestion.description = \"\";\n newQuestion.titleLocation = \"top\";\n newQuestion.hasComment = false;\n panel.addElement(newQuestion);\n }\n }\n rebuildQuestionValueOnOperandChanging(panel: PanelModel): void {\n const json = this.getQuestionConditionJson(\n panel.getQuestionByName(\"questionName\").value,\n panel.getQuestionByName(\"operator\").value\n );\n const question = panel.getQuestionByName(\"questionValue\");\n if (!!question && (question.isReadOnly || !question.isVisible)) {\n question.clearValue();\n }\n if (!question || (!!json && json.type == question.getType())) return;\n this.rebuildQuestionValue(panel);\n }\n private canShowQuestionValue(panel: PanelModel): boolean {\n const questionOperator = <QuestionDropdownModel>panel.getQuestionByName(\"operator\");\n if (!questionOperator) return false;\n this.updateOperatorEnables(panel);\n const choices = questionOperator.choices;\n for (let i = 0; i < choices.length; i++) {\n if (!choices[i].isEnabled) continue;\n const val = choices[i].value;\n if (val !== \"empty\" && val != \"notempty\") return true;\n }\n return false;\n }\n private getConditionQuestion(name: string): Question {\n return <Question>this.addConditionQuestionsHash[name];\n }\n private getQuestionConditionJson(questionName: string, operator: string): any {\n let path = \"\";\n const question = this.getConditionQuestion(questionName);\n if (!question) return null;\n if (questionName.indexOf(question.getValueName()) == 0) {\n path = questionName.substring(question.getValueName().length);\n }\n const indexInfo = this.getContextIndexInfo(questionName);\n if (!!indexInfo && indexInfo.index == 0) {\n path = questionName.substring(indexInfo.name.length);\n }\n if (!path) {\n path = questionName;\n }\n if (!!path && path[0] == \".\") {\n path = path.substring(1);\n }\n const json = question && question.getConditionJson ? question.getConditionJson(operator, path) : null;\n // if (!!json && json.type == \"radiogroup\") {\n // json.type = \"dropdown\";\n // }\n if (!!json && json.type == \"expression\") {\n json.type = \"text\";\n }\n if (!!json && operator == \"anyof\") {\n if (!ConditionEditor.isClassContains(json.type, [\"checkbox\"], [])) {\n json.type = \"checkbox\";\n }\n }\n return !!json ? json : null;\n }\n private updateOperatorEnables(panel: PanelModel) {\n const questionName = panel.getQuestionByName(\"questionName\");\n if (!questionName) return;\n const json = this.getQuestionConditionJson(questionName.value, this.defaultOperator);\n const qType = !!json ? json.type : null;\n const questionOperator = <QuestionDropdownModel>panel.getQuestionByName(\"operator\");\n if (!questionOperator) return;\n const choices = questionOperator.choices;\n let isCurrentOperatorEnabled = true;\n const op = questionOperator.value;\n for (let i = 0; i < choices.length; i++) {\n const isOperatorEnabled = ConditionEditor.isOperatorEnabled(qType, settings.operators[choices[i].value]);\n choices[i].setIsEnabled(isOperatorEnabled);\n choices[i].setIsVisible(isOperatorEnabled);\n if (choices[i].value == op) {\n isCurrentOperatorEnabled = choices[i].isEnabled;\n }\n }\n if (!isCurrentOperatorEnabled) {\n questionOperator.value = this.getFirstEnabledOperator(choices);\n }\n }\n private updateQuestionsWidth(panel: PanelModel) {\n const valueQuestion = panel.getQuestionByName(\"questionValue\");\n const conjunctionQuestion = panel.getQuestionByName(\"conjunction\");\n const nameQuestion = panel.getQuestionByName(\"questionName\");\n const operatorQuestion = panel.getQuestionByName(\"operator\");\n const isValueSameLine = !!valueQuestion && !valueQuestion.startWithNewLine;\n const isFirst = !conjunctionQuestion || !conjunctionQuestion.isVisible;\n if (!isFirst) {\n conjunctionQuestion.minWidth = \"50px\";\n conjunctionQuestion.width = \"15%\";\n }\n\n nameQuestion.minWidth = \"50px\";\n nameQuestion.width = isFirst ? \"40%\" : \"25%\";\n\n operatorQuestion.minWidth = \"50px\";\n operatorQuestion.width = isValueSameLine ? \"25%\" : \"60%\";\n\n if (!!valueQuestion) {\n valueQuestion.minWidth = \"50px\";\n valueQuestion.width = isValueSameLine ? \"35%\" : \"\";\n }\n }\n private get defaultOperator(): string { return settings.logic.defaultOperator; }\n private getFirstEnabledOperator(choices: Array<ItemValue>): string {\n for (let i = 0; i < choices.length; i++) {\n if (choices[i].isEnabled) {\n return choices[i].value;\n }\n }\n return this.defaultOperator;\n }\n private onPanelAdded() {\n this.setItemToPanel(\n new ConditionEditorItem(),\n this.panel.panels[this.panel.panels.length - 1]\n );\n }\n private onPanelValueChanged(panel: PanelModel, name: string) {\n if (name == \"questionName\") {\n this.context = this.getContextFromPanels();\n this.rebuildQuestionValue(panel);\n if (!this.isSettingPanelValues) {\n panel.getQuestionByName(\"operator\").value = this.defaultOperator;\n }\n }\n if (name == \"operator\") {\n this.rebuildQuestionValueOnOperandChanging(panel);\n }\n this.updateOperatorEnables(panel);\n this.updateQuestionsWidth(panel);\n }\n private onUpdateQuestionCssClasses(options: any) {\n options.cssClasses.answered = \"svc-logic-question--answered\";\n\n if (options.question.name === \"conjunction\") {\n options.question.allowRootStyle = false;\n options.cssClasses.control += \" svc-logic-operator svc-logic-operator--conjunction \";\n }\n if (options.question.name === \"questionName\") {\n options.question.allowRootStyle = false;\n options.cssClasses.control += \" svc-logic-operator svc-logic-operator--question\";\n options.cssClasses.error.root = \"svc-logic-operator__error\";\n options.cssClasses.onError = \"svc-logic-operator--error\";\n }\n if (options.question.name === \"operator\") {\n options.question.allowRootStyle = false;\n options.cssClasses.control += \" svc-logic-operator svc-logic-operator--operator\";\n }\n if (options.question.name === \"removeAction\") {\n options.question.allowRootStyle = false;\n options.cssClasses.mainRoot += \" svc-logic-condition-remove-question\";\n }\n // options.cssClasses.mainRoot += \"sd-question sd-row__question\";\n if (options.question.name === \"questionValue\") {\n assignDefaultV2Classes(options.cssClasses, options.question.getType());\n options.cssClasses.mainRoot += \" svc-logic-question-value\";\n options.cssClasses.error.root = \"svc-logic-operator__error\";\n }\n if (options.question.name === \"panel\") {\n options.cssClasses.root += \" svc-logic-paneldynamic\";\n options.cssClasses.buttonAdd += \" svc-logic-operator--operator\";\n options.cssClasses.iconRemove = \"svc-icon-remove\";\n options.cssClasses.buttonRemove = \"svc-logic-paneldynamic__button svc-logic-paneldynamic__remove-btn\";\n options.cssClasses.buttonRemoveRight = \"svc-logic-paneldynamic__remove-btn--right\";\n options.cssClasses.buttonRemoveText = \"svc-logic-paneldynamic__button-remove-text\";\n }\n }\n private onValueChanged(options: any) {\n if (options.question.name === \"panel\" && options.value.length > 0) {\n const maxLogicItems = this.options.maxLogicItemsInCondition > 0 ? this.options.maxLogicItemsInCondition : 100;\n options.question.maxPanelCount = options.value.length === 1 && !options.value[0].questionName ? 1 : maxLogicItems;\n this.panel.panels.forEach(panel => {\n panel.getQuestionByName(\"removeAction\").visible = options.value.length !== 1;\n });\n }\n this.setTitle();\n }\n private setTitle() {\n const text = this.isReady ? this.text : \"\";\n this.title = this.options.onConditionGetTitleCallback(text, text || editorLocalization.getString(\"pe.ruleIsNotSet\"));\n }\n\n private showTextEditor(expression: string) {\n this.panel.visible = false;\n this.textEditor.value = expression;\n this.textEditor.visible = true;\n }\n private showBuilder(expression: string) {\n if (!this.isModal && !this.getCanShowBuilder(expression)) return;\n this.textEditor.visible = false;\n this.processText(expression);\n this.panel.visible = true;\n }\n private getCanShowBuilder(expression: string): boolean {\n return ConditionEditor.canBuildExpression(expression);\n }\n}\n","import { Base, JsonObjectProperty, Question } from \"survey-core\";\nimport {\n PropertyGridEditorCollection,\n IPropertyEditorSetup,\n PropertyGridEditor\n} from \"./index\";\nimport { ConditionEditor } from \"./condition-survey\";\nimport { ISurveyCreatorOptions } from \"../creator-settings\";\n\nexport class PropertyGridEditorExpression extends PropertyGridEditor {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"expression\";\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n return { type: \"comment\", showOptionsCaption: false };\n }\n public clearPropertyValue(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): void {\n question.clearValue();\n }\n}\nexport class PropertyGridEditorCondition extends PropertyGridEditorExpression {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"condition\";\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n return {\n type: \"comment\",\n showOptionsCaption: false,\n readOnly: options.allowEditExpressionsInTextEditor === false\n };\n }\n public createPropertyEditorSetup(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): IPropertyEditorSetup {\n return new ConditionEditor((<any>obj).getSurvey(), obj, options, prop.name);\n }\n}\n\nPropertyGridEditorCollection.register(new PropertyGridEditorExpression());\nPropertyGridEditorCollection.register(new PropertyGridEditorCondition());\n","export class DescriptionMardownParser {\n private static boldRegEx;\n private static italicRegEx;\n private static codeRegEx;\n private static linkRegEx;\n public parse(text: string): string {\n if(!DescriptionMardownParser.boldRegEx) {\n DescriptionMardownParser.boldRegEx = /\\*{2}(.*?)\\*{2}/gm;\n DescriptionMardownParser.italicRegEx = /\\_(.*?)\\_/gm;\n DescriptionMardownParser.codeRegEx = /\\`(.*?)\\`/gm;\n DescriptionMardownParser.linkRegEx = /\\[(.+)\\]\\(([^ ]+?)( \"(.+)\")?\\)/;\n }\n const createSpan = (text: string, str: string, className: string, chars: string): string => {\n if(!str) return text;\n const index = text.indexOf(str);\n if(checkIfLink(text, index)) return text;\n let innerStr = str.substring(chars.length, str.length);\n innerStr = innerStr.substring(0, innerStr.length - chars.length);\n const newStr = \"<span class='\" + className + \"'>\" + innerStr + \"</span>\";\n return text.replace(str, newStr);\n };\n const checkIfLink = (text: string, index: number): boolean => {\n let isBracket = false;\n for(let i = index - 1; i > 0; i --) {\n if(text[i] === \" \" || text[i] === \"\\n\") return false;\n if(text[i] === \"]\" && isBracket) return true;\n isBracket = text[i] === \"(\";\n }\n return false;\n };\n const createLink = (text: string, str: string, className: string, chars: string): string => {\n if(!str) return text;\n const index = str.indexOf(\"](\");\n if(index < 0) return text;\n\n const contentStr = str.substring(1, index);\n const linkStr = str.substring(index + 2, str.length - 1);\n const newStr = \"<a class='\" + className + \"' target='_blank' href='\" + linkStr + \"'>\" + contentStr + \"</a>\";\n return text.replace(str, newStr);\n };\n text = this.replace(DescriptionMardownParser.boldRegEx, text, \"spg-bold\", \"**\", createSpan);\n text = this.replace(DescriptionMardownParser.italicRegEx, text, \"spg-italic\", \"_\", createSpan);\n text = this.replace(DescriptionMardownParser.codeRegEx, text, \"spg-code\", \"`\", createSpan);\n text = this.replace(DescriptionMardownParser.linkRegEx, text, \"spg-link\", \"\", createLink);\n text = this.addLineBreaks(text);\n return text;\n }\n private replace(re: RegExp, text: string, className: string, chars: string, replaceFunc: (text: string, str: string, className: string, chars: string) => string): string {\n const rArray = text.match(re);\n if(!Array.isArray(rArray) || rArray.length == 0) return text;\n for(var i = 0; i < rArray.length; i ++) {\n text = replaceFunc(text, rArray[i], className, chars);\n }\n return text;\n }\n private addLineBreaks(text: string): string {\n const br = \"\\n\";\n if(text.indexOf(br) < 0) return text;\n const strs = text.split(br);\n return strs.join(\"<br/>\");\n }\n}\n\nexport function parsePropertyDescription(text: string): string {\n return new DescriptionMardownParser().parse(text);\n}","import { ItemValue, QuestionCommentModel, QuestionTextBase, Serializer } from \"survey-core\";\nimport { PropertyEditorSetupValue } from \"./index\";\nimport { ISurveyCreatorOptions } from \"../creator-settings\";\nimport { editorLocalization } from \"../editorLocalization\";\n\nexport class FastEntryEditorBase extends PropertyEditorSetupValue {\n protected commentValue: QuestionCommentModel;\n\n protected static calcBeforeApplyItemsArray(\n dest: Array<any>,\n src: Array<any>,\n names: Array<string>\n ): void {\n if (!src || src.length == 0) {\n dest.splice(0, dest.length);\n return;\n }\n if (dest.length > src.length) {\n dest.splice(src.length, dest.length - src.length);\n }\n if (dest.length < src.length) {\n var insertedArray = [];\n for (var i = dest.length; i < src.length; i++) {\n insertedArray.push(src[i]);\n }\n dest.splice.apply(dest, [dest.length, 0].concat(insertedArray));\n }\n }\n\n public static applyItemsArray(\n dest: Array<any>,\n src: Array<any>,\n names: Array<string> = []\n ): void {\n this.calcBeforeApplyItemsArray(dest, src, names);\n for (var i = 0; i < dest.length; i++) {\n names.forEach((name) => {\n dest[i][name] = src[i][name];\n });\n }\n }\n\n constructor(\n public choices: Array<any>,\n options: ISurveyCreatorOptions = null,\n protected className: string = \"item\",\n protected names: Array<string> = []\n ) {\n super(options);\n this.commentValue = <QuestionCommentModel>(\n this.editSurvey.getQuestionByName(\"question\")\n );\n this.setComment();\n (this.editSurvey.getQuestionByName(\"question\") as QuestionTextBase).placeholder =\n editorLocalization.getString(\"pe.fastEntryPlaceholder\");\n this.editSurvey.onValidateQuestion.add((sender, options) => {\n const maxChoicesCount = this.options.maximumChoicesCount;\n if (maxChoicesCount > 0) {\n var choicesCount = this.getChoicesCount();\n if (maxChoicesCount < choicesCount) {\n options.error = editorLocalization\n .getString(\"pe.fastEntryChoicesCountError\")[\"format\"](choicesCount, maxChoicesCount);\n }\n return;\n }\n if (!this.isValueUnique) return;\n let uniqueValue = this.getFirstUniqueValue();\n if (!!uniqueValue) {\n options.error = editorLocalization\n .getString(\"pe.fastEntryNonUniqueError\")[\"format\"](uniqueValue);\n }\n });\n }\n\n protected getSurveyJSON(): any {\n return {\n elements: [\n {\n type: \"comment\",\n name: \"question\",\n titleLocation: \"hidden\",\n rows: 12\n }\n ]\n };\n }\n\n protected getSurveyCreationReason(): string {\n return \"fast-entry\";\n }\n\n public apply(): boolean {\n if (this.comment.isEmpty()) return false;\n if (this.editSurvey.hasErrors(true)) return false;\n const items = this.convertTextToItemValues(this.comment.value);\n FastEntryEditorBase.applyItemsArray(<any>this.choices, items, this.names);\n return true;\n }\n\n protected convertTextToItemValues(text: string): ItemValue[] {\n var items = [];\n if (!text) return items;\n\n var texts = text.split(\"\\n\");\n for (var i = 0; i < texts.length; i++) {\n if (!texts[i]) continue;\n var elements = texts[i].split(ItemValue.Separator);\n var valueItem = Serializer.createClass(this.className);\n this.names.forEach((name, i) => {\n valueItem[name] = elements[i];\n });\n items.push(valueItem);\n }\n return items;\n }\n\n public get comment(): QuestionCommentModel {\n return this.commentValue;\n }\n\n protected getChoicesCount(): number {\n var texts = this.comment.value.split(\"\\n\");\n var res = 0;\n for (let i = 0; i < texts.length; i++) {\n let str = texts[i];\n if (!!str) res++;\n }\n return res;\n }\n\n protected get isValueUnique(): boolean {\n return Serializer.findProperty(\"itemvalue\", \"value\").isUnique === true;\n }\n\n protected getFirstUniqueValue(): boolean {\n var texts = this.comment.value.split(\"\\n\");\n const values: any = {};\n for (let i = 0; i < texts.length; i++) {\n let str = texts[i];\n if (!str) continue;\n let value = str.split(ItemValue.Separator)[0];\n if (values[value]) return value;\n values[value] = true;\n }\n return undefined;\n }\n\n public setComment(): void {\n var text = this.convertItemValuesToText();\n this.comment.value = text;\n }\n\n protected collectNames(item, type: string, separatorCounter: number): string {\n let text: string = \"\";\n this.names.forEach((name) => {\n if (type === \"itemvalues\") {\n if (name == \"value\") return;\n var str = name == \"text\" ? item.pureText : item[name];\n } else {\n var str = item[name];\n }\n if (!!str) {\n for (var i = 0; i < separatorCounter; i++) {\n text += ItemValue.Separator;\n }\n text += str;\n separatorCounter = 1;\n } else {\n separatorCounter++;\n }\n });\n return text;\n }\n\n protected convertItemValuesToText(): string {\n var text = \"\";\n this.choices.forEach((item) => {\n if (text) text += \"\\n\";\n text += this.collectNames(item, \"\", 0);\n });\n return text;\n }\n}\n\nexport class FastEntryEditor extends FastEntryEditorBase {\n public static applyItemValueArray(\n dest: Array<ItemValue>,\n src: Array<ItemValue>,\n names: Array<string> = []\n ): void {\n this.calcBeforeApplyItemsArray(dest, src, names);\n for (var i = 0; i < dest.length; i++) {\n if (dest[i].value != src[i].value) {\n dest[i].value = src[i].value;\n }\n dest[i].text = src[i].hasText ? src[i].text : \"\";\n names.forEach((name) => {\n if (name == \"value\" || name == \"text\") return;\n dest[i][name] = src[i][name];\n });\n }\n }\n\n constructor(\n public choices: Array<ItemValue>,\n options: ISurveyCreatorOptions = null,\n protected className: string = \"itemvalue\",\n protected names: Array<string> = [\"value\", \"text\"]\n ) {\n super(choices, options, className, names);\n }\n\n public apply(): boolean {\n if (this.comment.isEmpty()) return false;\n if (this.editSurvey.hasErrors(true)) return false;\n const items = this.convertTextToItemValues(this.comment.value);\n FastEntryEditor.applyItemValueArray(<any>this.choices, items, this.names);\n return true;\n }\n\n protected convertItemValuesToText(): string {\n var text = \"\";\n this.choices.forEach((item) => {\n if (text) text += \"\\n\";\n text += item.value;\n text += this.collectNames(item, \"itemvalues\", 1);\n });\n return text;\n }\n}\n","import {\n Base,\n FunctionFactory,\n Helpers,\n ItemValue,\n JsonObjectProperty,\n PanelModel,\n PanelModelBase,\n Question,\n QuestionButtonGroupModel,\n Serializer,\n settings,\n SurveyModel,\n Action,\n MatrixDynamicRowModel,\n ComputedUpdater,\n QuestionDropdownModel,\n QuestionSelectBase,\n PopupBaseViewModel,\n surveyLocalization\n} from \"survey-core\";\nimport { editorLocalization, getLocString } from \"../editorLocalization\";\nimport { EditableObject } from \"../editable-object\";\nimport { propertyGridCss } from \"../property-grid-theme/property-grid\";\nimport {\n SurveyQuestionEditorTabDefinition,\n SurveyQuestionProperties\n} from \"../question-editor/properties\";\nimport {\n EmptySurveyCreatorOptions,\n ISurveyCreatorOptions,\n ICollectionItemAllowOperations,\n settings as creatorSettings\n} from \"../creator-settings\";\nimport { QuestionFactory } from \"survey-core\";\nimport { defaultV2Css } from \"survey-core\";\nimport { SurveyHelper } from \"../survey-helper\";\nimport { CreatorBase } from \"../creator-base\";\nimport { IPropertyEditorInfo, SurveyQuestionEditorDefinition } from \"../question-editor/definition\";\nimport { parsePropertyDescription } from \"./description-parser\";\n\nfunction propertyVisibleIf(params: any): boolean {\n if (!this.question || !this.question.obj || !this.question.property) return false;\n return this.question.property.visibleIf(this.question.obj);\n}\n\nFunctionFactory.Instance.register(\"propertyVisibleIf\", propertyVisibleIf);\n\nexport interface IPropertyEditorSetup {\n editSurvey: SurveyModel;\n apply(): boolean;\n}\n\nexport function setSurveyJSONForPropertyGrid(\n json: any,\n updateOnTyping: boolean = true,\n titleLocationLeft: boolean = true\n) {\n json.showNavigationButtons = \"none\";\n json.showPageTitles = false;\n json.focusFirstQuestionAutomatic = false;\n json.showQuestionNumbers = \"off\";\n if (titleLocationLeft) {\n json.questionTitleLocation = \"left\";\n }\n json.showProgressBar = \"off\";\n if (updateOnTyping) {\n json.textUpdateMode = \"onTyping\";\n }\n json.requiredText = \"\";\n}\n\nexport abstract class PropertyEditorSetupValue implements IPropertyEditorSetup {\n private editSurveyValue: SurveyModel;\n constructor(\n protected options: ISurveyCreatorOptions = null,\n doSetup: boolean = true\n ) {\n if (!this.options) {\n this.options = new EmptySurveyCreatorOptions();\n }\n if (doSetup) {\n this.setupSurvey();\n }\n }\n protected setupSurvey() {\n this.editSurveyValue = this.createSurvey();\n }\n public get editSurvey(): SurveyModel {\n return this.editSurveyValue;\n }\n public hasErrors(): boolean {\n return this.editSurvey.hasErrors(true, true);\n }\n protected createSurvey(): SurveyModel {\n var json = this.getSurveyJSON();\n setSurveyJSONForPropertyGrid(json, true, false);\n return this.options.createSurvey(json, this.getSurveyCreationReason());\n }\n protected abstract getSurveyJSON(): any;\n protected abstract getSurveyCreationReason(): string;\n public abstract apply(): boolean;\n public dispose(): void {\n if (!!this.editSurvey) {\n this.editSurvey.dispose();\n }\n }\n}\n\nexport interface IPropertyGridEditor {\n fit(prop: JsonObjectProperty, context?: string): boolean;\n isDefault?: () => boolean;\n getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any;\n showModalPropertyEditor?: (\n editor: IPropertyGridEditor,\n property: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ) => IPropertyEditorSetup;\n onCreated?: (obj: Base, question: Question, prop: JsonObjectProperty, options: ISurveyCreatorOptions) => void;\n validateValue?: (obj: Base, question: Question, prop: JsonObjectProperty, val: any) => string;\n onAfterRenderQuestion?: (\n obj: Base,\n prop: JsonObjectProperty,\n evtOptions: any\n ) => void;\n createPropertyEditorSetup?: (\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ) => IPropertyEditorSetup;\n isPropertyEditorSetupEnabled?: (\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ) => boolean;\n canClearPropertyValue?: (obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions) => boolean;\n clearPropertyValue?: (\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ) => void;\n onMasterValueChanged?: (\n obj: Base,\n prop: JsonObjectProperty,\n question: Question\n ) => void;\n\n onAddIntoPropertyValue?: (\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ) => void;\n onMatrixCellCreated?: (obj: Base, options: any) => void;\n onMatrixCellValueChanged?: (obj: Base, options: any) => void;\n onMatrixAllowRemoveRow?: (obj: Base, row: any) => boolean;\n onGetQuestionTitleActions?: (obj: Base, options: any) => void;\n onUpdateQuestionCssClasses?: (obj: Base, options: any) => void;\n}\n\nexport var PropertyGridEditorCollection = {\n editors: new Array<IPropertyGridEditor>(),\n fitHash: {},\n clearHash(): void {\n this.fitHash = {};\n },\n register(editor: IPropertyGridEditor): void {\n this.editors.push(editor);\n },\n getEditor(prop: JsonObjectProperty, context?: string): IPropertyGridEditor {\n if (!prop) return null;\n if (!!context) {\n for (var i = this.editors.length - 1; i >= 0; i--) {\n let ed = this.editors[i];\n if (ed.fit(prop, context)) return ed;\n }\n }\n var fitEd = this.fitHash[prop.id];\n if (!!fitEd) return fitEd;\n let ed = this.isEditorFit(prop);\n return !!ed ? ed : this.isEditorFit(prop, true);\n },\n isEditorFit(\n prop: JsonObjectProperty,\n asDefault: boolean = false\n ): IPropertyGridEditor {\n for (var i = this.editors.length - 1; i >= 0; i--) {\n let ed = this.editors[i];\n if (\n (!asDefault && ed.fit(prop)) ||\n (asDefault && ed.isDefault && ed.isDefault())\n ) {\n this.fitHash[prop.id] = ed;\n return ed;\n }\n }\n return null;\n },\n getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions,\n context?: string\n ): any {\n var res = this.getEditor(prop, context);\n return !!res ? res.getJSON(obj, prop, options) : null;\n },\n onCreated(obj: Base, question: Question, prop: JsonObjectProperty, options: ISurveyCreatorOptions): any {\n var res = this.getEditor(prop);\n if (!!res && !!res.onCreated) {\n res.onCreated(obj, question, prop, options);\n }\n },\n validateValue(obj: Base, question: Question, prop: JsonObjectProperty, value: any): string {\n var res = this.getEditor(prop);\n if (!!res && !!res.validateValue) {\n return res.validateValue(obj, question, prop, value);\n }\n return \"\";\n },\n onAfterRenderQuestion(obj: Base, prop: JsonObjectProperty, evtOptions: any) {\n var res = this.getEditor(prop);\n if (!!res && !!res.onAfterRenderQuestion) {\n res.onAfterRenderQuestion(obj, prop, evtOptions);\n }\n },\n onMatrixCellCreated(obj: Base, prop: JsonObjectProperty, options: any) {\n var res = this.getEditor(prop);\n if (!!res && !!res.onMatrixCellCreated) {\n res.onMatrixCellCreated(options.question.obj, options);\n }\n },\n onMatrixCellValueChanged(obj: Base, prop: JsonObjectProperty, options: any) {\n var res = this.getEditor(prop);\n if (!!res && !!res.onMatrixCellValueChanged) {\n res.onMatrixCellValueChanged(obj, options);\n }\n var row = options.row;\n if (!!row) {\n var cellQuestion = row.getQuestionByName(options.columnName);\n if (!!cellQuestion) {\n row.runCondition({}, { question: cellQuestion });\n }\n }\n },\n onMatrixAllowRemoveRow(\n obj: Base,\n prop: JsonObjectProperty,\n row: MatrixDynamicRowModel\n ): boolean {\n var res = this.getEditor(prop);\n if (!!res && !!res.onMatrixAllowRemoveRow) {\n return res.onMatrixAllowRemoveRow(obj, row);\n }\n return true;\n },\n onGetMatrixRowAction(\n obj: Base,\n prop: JsonObjectProperty,\n options: any,\n setObjFunc: (obj: Base) => void\n ) {\n var res = this.getEditor(prop);\n if (!!res && !!res.onGetMatrixRowAction) {\n res.onGetMatrixRowAction(obj, options, setObjFunc);\n }\n },\n onUpdateQuestionCssClasses(obj: Base,\n prop: JsonObjectProperty,\n options: any) {\n var res = this.getEditor(prop);\n if (!!res && !!res.onUpdateQuestionCssClasses) {\n res.onUpdateQuestionCssClasses(obj, options);\n }\n },\n onGetQuestionTitleActions(obj: Base, prop: JsonObjectProperty, options: any) {\n var res = this.getEditor(prop);\n if (!!res && !!res.onGetQuestionTitleActions) {\n res.onGetQuestionTitleActions(obj, options);\n }\n },\n onValueChanged(obj: Base, prop: JsonObjectProperty, question: Question) {\n var res = this.getEditor(prop);\n if (!!res && !!res.onValueChanged) {\n res.onValueChanged(obj, prop, question);\n }\n },\n onMasterValueChanged(obj: Base, prop: JsonObjectProperty, question: Question) {\n var res = this.getEditor(prop);\n if (!!res && !!res.onMasterValueChanged) {\n res.onMasterValueChanged(obj, prop, question);\n }\n },\n};\n\nexport class PropertyGridTitleActionsCreator {\n constructor(public obj: Base, private options: ISurveyCreatorOptions) { }\n public onGetQuestionTitleActions(options) {\n const question = options.question;\n const property = question.property;\n const editor = PropertyGridEditorCollection.getEditor(property);\n if (!editor) return;\n const actions = [];\n let enabled = !question.isReadOnly;\n const hasClear = !!editor.clearPropertyValue && (!editor.canClearPropertyValue || editor.canClearPropertyValue(this.obj, property, question, this.options));\n if (hasClear) {\n actions.push(\n this.createClearValueAction(editor, property, question, enabled)\n );\n }\n if ((<any>question).allowBatchEdit !== false) {\n if (!!editor.createPropertyEditorSetup) {\n if (enabled) {\n enabled =\n !editor.isPropertyEditorSetupEnabled ||\n editor.isPropertyEditorSetupEnabled(\n this.obj,\n property,\n options.question,\n this.options\n );\n }\n actions.push(\n this.createEditorSetupAction(editor, property, question, enabled)\n );\n }\n }\n var helpAction = this.createPropertyHelpAction(question);\n if (!!helpAction) {\n actions.push(helpAction);\n }\n if (actions.length > 0) {\n options.titleActions = actions;\n }\n }\n private createClearValueAction(\n editor: IPropertyGridEditor,\n property: JsonObjectProperty,\n question: Question,\n enabled: boolean\n ): any {\n return {\n id: \"property-grid-clear\",\n title: getLocString(\"pe.clear\"),\n showTitle: false,\n iconName: \"icon-clear\",\n innerCss: \"spg-action-button--danger\",\n enabled: enabled,\n visible: <any>new ComputedUpdater<boolean>(() => {\n const propertyValue = (<any>question).obj[property.name];\n return Array.isArray(propertyValue) ? propertyValue.length > 0 : !!propertyValue;\n }),\n action: () => {\n editor.clearPropertyValue(\n (<any>question).obj,\n property,\n question,\n this.options\n );\n }\n };\n }\n private showModalPropertyEditor(\n editor: IPropertyGridEditor,\n property: JsonObjectProperty,\n question: Question\n ) {\n return editor.showModalPropertyEditor(\n editor,\n property,\n question,\n this.options\n );\n }\n\n private createEditorSetupAction(\n editor: IPropertyGridEditor,\n property: JsonObjectProperty,\n question: Question,\n enabled: boolean\n ): any {\n var setupAction = {\n id: \"property-grid-setup\",\n iconName: property.isArray ? \"icon-fast-entry\" : \"icon-wizard\",\n enabled: enabled,\n title: getLocString(\"pe.edit\"),\n showTitle: false,\n action: () => {\n return this.showModalPropertyEditor(editor, property, question);\n }\n };\n return setupAction;\n }\n private createPropertyHelpAction(question: Question): any {\n if (!question.description) return null;\n const action = new Action({\n title: \"\",\n tooltip: question.description,\n id: \"property-grid-help\",\n iconName: this.getHelpActionIconName(question),\n showTitle: false,\n action: () => {\n question.descriptionLocation =\n question.descriptionLocation != \"hidden\" ? \"hidden\" : \"underTitle\";\n action.iconName = this.getHelpActionIconName(question);\n }\n });\n return action;\n }\n private getHelpActionIconName(question: Question): string {\n return question.descriptionLocation != \"hidden\" ? \"icon-description-hide\" : \"icon-description\";\n }\n}\n\nexport class PropertyJSONGenerator {\n public static isPropertyReadOnly(\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions,\n obj: Base,\n parentObj: Base,\n parentProperty: JsonObjectProperty\n ): boolean {\n var res = prop.readOnly;\n if (!!options && !!obj) {\n res = options.onIsPropertyReadOnlyCallback(\n obj,\n prop,\n res,\n parentObj,\n parentProperty\n );\n }\n return res;\n }\n public static getClassNameProperty(obj: Base): string {\n if (!!obj && !!obj[\"getClassNameProperty\"])\n return obj[\"getClassNameProperty\"]();\n return undefined;\n }\n\n constructor(\n public obj: Base,\n private options: ISurveyCreatorOptions = null,\n private parentObj: Base = null,\n private parentProperty: JsonObjectProperty = null,\n private properties: Array<JsonObjectProperty> = null\n ) { }\n public toJSON(isNested: boolean = false, context: string = undefined): any {\n return this.createJSON(isNested, context);\n }\n public createColumnsJSON(className: string, names: Array<string>): any {\n var res: Array<any> = [];\n for (var i = 0; i < names.length; i++) {\n var columnJSON = this.getColumnPropertyJSON(className, names[i]);\n if (!!columnJSON) {\n res.push(columnJSON);\n }\n }\n return res;\n }\n public setupObjPanel(panel: PanelModelBase, isNestedObj: boolean = false, context: string = undefined): void {\n panel.fromJSON(this.toJSON(isNestedObj, context));\n this.onQuestionsCreated(panel);\n }\n private onQuestionsCreated(panel: PanelModelBase): void {\n var properties = Serializer.getPropertiesByObj(this.obj);\n var props: any = {};\n for (var i = 0; i < properties.length; i++) {\n props[properties[i].name] = properties[i];\n }\n var questions = panel.questions;\n for (var i = 0; i < questions.length; i++) {\n var q = questions[i];\n var prop = props[q.name];\n q.property = prop;\n q.obj = this.obj;\n q.options = this.options;\n var eventVisibility = this.getVisibilityOnEvent(prop);\n q.readOnly = q.readOnly || this.isPropertyReadOnly(prop);\n q.visible = q.visible && eventVisibility;\n if (!!prop.visibleIf) {\n q.visibleIf = eventVisibility ? \"propertyVisibleIf() = true\" : \"\";\n }\n q.descriptionLocation = \"hidden\";\n let helpText = editorLocalization.getPropertyHelpInEditor(this.obj.getType(), prop.name, prop.type);\n if (!!helpText) {\n q.description = helpText;\n }\n PropertyGridEditorCollection.onCreated(this.obj, q, prop, this.options);\n this.options.onPropertyEditorCreatedCallback(this.obj, prop, q);\n }\n }\n private getVisibilityOnEvent(\n prop: JsonObjectProperty,\n showMode: string = \"\"\n ): boolean {\n return this.options.onCanShowPropertyCallback(\n this.obj,\n <any>prop,\n showMode,\n this.parentObj,\n <any>this.parentProperty\n );\n }\n private isPropertyReadOnly(prop: JsonObjectProperty): boolean {\n return PropertyJSONGenerator.isPropertyReadOnly(\n prop,\n this.options,\n this.obj,\n this.parentObj,\n this.parentProperty\n );\n }\n private getClasPropName(): string {\n if (!!this.parentObj && !!this.parentProperty)\n return this.parentProperty.name;\n var propName = PropertyJSONGenerator.getClassNameProperty(this.obj);\n if (!!propName && this.obj[propName]) return this.obj[propName];\n return undefined;\n }\n private createJSON(isNestedObj: boolean, context: string = undefined): any {\n var className = undefined;\n const propName = this.getClasPropName();\n if (!!propName) {\n className = this.obj.getType();\n if (className === \"itemvalue\") className += \"[]\";\n className += \"@\" + propName;\n }\n var properties = new SurveyQuestionProperties(\n this.obj,\n null,\n className,\n undefined,\n this.parentObj,\n this.parentProperty\n );\n var tabs = properties.getTabs();\n var panels: any = {};\n for (var i = 0; i < tabs.length; i++) {\n if (tabs[i].visible === false) continue;\n panels[tabs[i].name] = this.createPanelProps(tabs[i], context);\n }\n var json: any = {\n elements: []\n };\n for (var key in panels) {\n if (key == creatorSettings.propertyGrid.generalTabName && isNestedObj) {\n var els = panels[key].elements;\n for (var i = 0; i < els.length; i++) {\n json.elements.push(els[i]);\n }\n } else {\n json.elements.push(panels[key]);\n }\n }\n return json;\n }\n private createPanelProps(tab: SurveyQuestionEditorTabDefinition, context: string): any {\n var panel = this.createPanelJSON(tab.name, tab.title);\n for (var i = 0; i < tab.properties.length; i++) {\n var propDef = tab.properties[i];\n var propJSON = this.createQuestionJSON(\n <any>propDef.property,\n propDef.title,\n false,\n context\n );\n if (propDef.onSameLine) {\n propJSON.startWithNewLine = false;\n this.updateQuestionJSONOnSameLine(propJSON);\n if (panel.elements.length > 0) {\n this.updateQuestionJSONOnSameLine(panel.elements[panel.elements.length - 1]);\n }\n }\n if (!propJSON) continue;\n panel.elements.push(propJSON);\n }\n return panel;\n }\n private updateQuestionJSONOnSameLine(json: any) {\n json.titleLocation = \"left\";\n json.minWidth = \"50px\";\n }\n private createPanelJSON(category: string, title: string): any {\n return {\n type: \"panel\",\n name: category,\n title: this.getPanelTitle(category, title),\n state: \"collapsed\",\n elements: []\n };\n }\n private createQuestionJSON(\n prop: JsonObjectProperty,\n title: string,\n isColumn: boolean = false,\n context: string\n ): any {\n var isVisible = this.isPropertyVisible(prop, isColumn ? \"list\" : \"\");\n if (!isVisible && isColumn) return null;\n var json = PropertyGridEditorCollection.getJSON(\n this.obj,\n prop,\n this.options,\n context\n );\n if (!json) return null;\n json.name = prop.name;\n json.visible = prop.visible;\n json.isReadOnly = prop.readOnly;\n json.isRequired = prop.isRequired;\n json.requiredErrorText = editorLocalization.getString(\"pe.propertyIsEmpty\");\n json.title = this.getQuestionTitle(prop, title);\n\n const propDescr = SurveyQuestionEditorDefinition.definition[this.obj.getType()]?.properties.filter(property => property[\"name\"] === prop.name)[0] as IPropertyEditorInfo;\n if (typeof propDescr === \"object\" && propDescr.placeholder) {\n json.placeholder = editorLocalization.getString(\"pe.\" + propDescr.placeholder);\n }\n return json;\n }\n private getColumnPropertyJSON(className: string, propName: string): any {\n if (!className) return null;\n var prop = Serializer.findProperty(className, propName);\n if (!prop) return null;\n var json = this.createQuestionJSON(prop, \"\", true, undefined);\n if (!json) return null;\n json.name = prop.name;\n json.title = this.getQuestionTitle(prop, \"\");\n if (prop.isUnique) {\n json.isUnique = prop.isUnique;\n }\n if (!!json.type) {\n json.cellType = json.type;\n delete json.type;\n }\n if (json.cellType === \"buttongroup\") {\n json.cellType = \"dropdown\";\n }\n if (!!prop.visibleIf) {\n json.visibleIf = \"propertyVisibleIf() = true\";\n }\n if (!!json.isReadOnly) {\n json.readOnly = json.isReadOnly;\n delete json.isReadOnly;\n }\n return json;\n }\n private isPropertyVisible(\n prop: JsonObjectProperty,\n showMode: string\n ): boolean {\n if (!prop.visible) return false;\n return !showMode || !prop.showMode || showMode == prop.showMode;\n }\n private getPanelTitle(name: string, title: string): string {\n if (!!title) return title;\n return editorLocalization.getString(\"pe.tabs.\" + name);\n }\n private getQuestionTitle(prop: JsonObjectProperty, title: string): string {\n if (!!prop.displayName) return prop.displayName;\n if (!!title && title !== prop.name) return title;\n return editorLocalization.getPropertyNameInEditor(this.obj.getType(), prop.name);\n }\n}\n\nexport class PropertyGridModel {\n private surveyValue: SurveyModel;\n private objValue: Base;\n private optionsValue: ISurveyCreatorOptions;\n private titleActionsCreator: PropertyGridTitleActionsCreator;\n private classNameProperty: string;\n private classNameValue: any;\n\n currentlySelectedProperty: string;\n currentlySelectedPanel: PanelModel;\n\n public objValueChangedCallback: () => void;\n public changedFromActionCallback: (obj: Base, propertyName: string) => void;\n public refresh(): void {\n this.setObj(this.objValue);\n }\n constructor(\n obj: Base = null,\n options: ISurveyCreatorOptions = new EmptySurveyCreatorOptions()\n ) {\n this.options = options;\n this.obj = obj;\n }\n public get obj() {\n return this.objValue;\n }\n public set obj(value: Base) {\n if (this.objValue === value) return;\n this.setObj(value);\n }\n public selectProperty(propertyName: string, focus = true) {\n if (!this.survey) return;\n var question = this.survey.getQuestionByName(propertyName);\n if (!question) return;\n var panels = this.survey.getAllPanels();\n for (var i = 0; i < panels.length; i++) {\n var panel = <PanelModel>panels[i];\n if (panel === question.parent) {\n panel.expand();\n } else {\n panel.collapse();\n }\n }\n if (focus) {\n question.focus();\n }\n }\n private setObjFromAction(value: Base, propertyName: string) {\n if (this.changedFromActionCallback) {\n this.changedFromActionCallback(value, propertyName);\n } else {\n this.setObj(value);\n }\n }\n private setObj(value: Base) {\n this.objValue = value;\n this.classNameProperty = !!this.obj\n ? PropertyJSONGenerator.getClassNameProperty(this.obj)\n : \"\";\n this.classNameValue = !!this.classNameProperty\n ? this.obj[this.classNameProperty]\n : undefined;\n\n this.titleActionsCreator = !!this.obj\n ? new PropertyGridTitleActionsCreator(this.obj, this.options)\n : undefined;\n var json = this.getSurveyJSON();\n if (this.options.readOnly) {\n json.mode = \"display\";\n }\n if (!!this.surveyValue) {\n this.surveyValue.onValidateQuestion.clear();\n this.surveyValue.onValueChanging.clear();\n this.surveyValue.onValueChanged.clear();\n this.surveyValue.onMatrixCellValueChanging.clear();\n this.surveyValue.onMatrixCellValidate.clear();\n this.surveyValue.onMatrixCellValueChanged.clear();\n this.surveyValue.editingObj = undefined;\n this.surveyValue.data = {};\n this.surveyValue.dispose();\n }\n this.surveyValue = this.createSurvey(json);\n this.surveyValue.getCss().list = {};\n this.surveyValue.css = propertyGridCss;\n var page = this.surveyValue.createNewPage(\"p1\");\n if (!this.obj) return;\n new PropertyJSONGenerator(this.obj, this.options).setupObjPanel(\n page,\n false\n );\n this.survey.addPage(page);\n this.survey.checkErrorsMode = \"onValueChanging\";\n this.survey.onValueChanged.add((sender, options) => {\n this.onValueChanged(options);\n });\n this.survey.onValueChanging.add((sender, options) => {\n this.onValueChanging(options);\n });\n this.survey.onValidateQuestion.add((sender, options) => {\n this.onValidateQuestion(options);\n });\n this.survey.onGetQuestionTitleActions.add((sender, options) => {\n this.titleActionsCreator.onGetQuestionTitleActions(options);\n this.onGetQuestionTitleActions(options);\n const q = options.question;\n this.options.onPropertyEditorUpdateTitleActionsCallback(this.obj, q.property, q, options.titleActions);\n });\n this.survey.onGetPanelTitleActions.add((sender, options) => {\n options.titleActions.splice(0, options.titleActions.length);\n });\n this.survey.onMatrixCellCreated.add((sender, options) => {\n this.onMatrixCellCreated(options);\n });\n this.survey.onMatrixCellValueChanging.add((sender, options) => {\n this.onMatrixCellValueChanging(options);\n });\n this.survey.onMatrixCellValidate.add((sender, options) => {\n this.onMatrixCellValidate(options);\n });\n this.survey.onMatrixCellValueChanged.add((sender, options) => {\n this.onMatrixCellValueChanged(options);\n });\n this.survey.onMatrixAllowRemoveRow.add((sender, options) => {\n options.allow = this.getMatrixAllowRemoveRow(options.question, options.row);\n });\n this.survey.onMatrixRowRemoving.add((sender, options) => {\n options.allow = this.getMatrixOnRowRemoving(options.question, options.row);\n });\n this.survey.onMatrixRowAdded.add((sender, options) => {\n this.onMatrixRowAdded(options);\n });\n this.survey.onGetMatrixRowActions.add((sender, options) => {\n this.onGetMatrixRowAction(options);\n });\n this.survey.onUpdateQuestionCssClasses.add((sender, options) => {\n this.onUpdateQuestionCssClasses(options);\n });\n this.survey.onAfterRenderQuestion.add((sender, options) => {\n this.onAfterRenderQuestion(options);\n });\n this.survey.onTextMarkdown.add((sender, options) => {\n if (options.name === \"description\") {\n options.html = parsePropertyDescription(options.text);\n }\n });\n this.survey.editingObj = this.obj;\n if (this.objValueChangedCallback) {\n this.objValueChangedCallback();\n }\n this.updateDependedPropertiesEditors();\n this.survey.onFocusInPanel.add((sender, options) => {\n if (this.currentlySelectedPanel !== options.panel) {\n const questionToFocus = options.panel.getFirstQuestionToFocus(false, true);\n this.currentlySelectedProperty = !!questionToFocus ? questionToFocus.name : \"\";\n this.currentlySelectedPanel = options.panel;\n }\n });\n this.survey.onFocusInQuestion.add((sender, options) => {\n this.currentlySelectedProperty = options.question.name;\n this.currentlySelectedPanel = <PanelModel>options.question.parent;\n });\n this.survey.getAllQuestions().map(q => q.allowRootStyle = false);\n this.options.onPropertyGridSurveyCreatedCallback(this.obj, this.survey);\n }\n public get options(): ISurveyCreatorOptions {\n return this.optionsValue;\n }\n public set options(val: ISurveyCreatorOptions) {\n this.optionsValue = !!val ? val : new EmptySurveyCreatorOptions();\n }\n public get survey() {\n return this.surveyValue;\n }\n public validate(): boolean {\n if (!this.survey) return;\n return !this.survey.hasErrors(true, true);\n }\n public collapseCategory(name: string) {\n var panel = <PanelModel>this.survey.getPanelByName(name);\n if (!!panel) {\n panel.collapse();\n }\n }\n public expandCategory(name: string) {\n var panel = <PanelModel>this.survey.getPanelByName(name);\n if (!!panel) {\n panel.expand();\n }\n }\n public collapseAllCategories() {\n var panels = this.survey.getAllPanels();\n for (var i = 0; i < panels.length; i++) {\n (<PanelModel>panels[i]).collapse();\n }\n }\n public expandAllCategories() {\n var panels = this.survey.getAllPanels();\n for (var i = 0; i < panels.length; i++) {\n (<PanelModel>panels[i]).expand();\n }\n }\n protected createSurvey(json: any): SurveyModel {\n return this.options.createSurvey(json, \"property-grid\");\n }\n protected getSurveyJSON(): any {\n var res = {};\n setSurveyJSONForPropertyGrid(res, true, false);\n return res;\n }\n private validateQuestionValue(obj: Base, question: Question, prop: JsonObjectProperty, val: any): string {\n if (question.isRequired && (Helpers.isValueEmpty(val) || question[\"valueChangingEmpty\"])) {\n return editorLocalization.getString(\"pe.propertyIsEmpty\");\n }\n const editorError = PropertyGridEditorCollection.validateValue(obj, question, prop, val);\n if (!!editorError) return editorError;\n return this.options.onGetErrorTextOnValidationCallback(prop.name, obj, val);\n }\n private onValidateQuestion(options: any) {\n var q = options.question;\n if (!q || !q.property) return;\n options.error = this.validateQuestionValue(this.obj, q, q.property, options.value);\n }\n private onValueChanging(options: any) {\n var q = options.question;\n if (!q || !q.property || Helpers.isTwoValueEquals(options.value, options.oldValue)) return;\n var changingOptions = {\n obj: this.obj,\n propertyName: q.property.name,\n value: options.oldValue,\n newValue: options.value,\n doValidation: false\n };\n this.options.onValueChangingCallback(changingOptions);\n options.value = changingOptions.newValue;\n if (q.property.isRequired) {\n const isEmpty = Helpers.isValueEmpty(options.value);\n if(isEmpty) {\n options.value = options.oldValue;\n }\n q[\"valueChangingEmpty\"] = isEmpty;\n }\n }\n private onValueChanged(options: any) {\n var q = options.question;\n if (!q || !q.property) return;\n if(q[\"valueChangingEmpty\"]) {\n q[\"valueChangingEmpty\"] = false;\n }\n this.changeDependedProperties(q, (name: string): Question => { return this.survey.getQuestionByName(name); },\n (name: string): any => { return this.survey.getValue(name); });\n PropertyGridEditorCollection.onValueChanged(this.obj, q.property, q);\n if (\n !!this.classNameProperty &&\n options.name === this.classNameProperty &&\n this.classNameValue !== options.value\n ) {\n this.setObj(this.obj);\n if (!!this.survey) {\n const question = this.survey.getQuestionByName(options.name);\n if (!!question) {\n question.focus();\n }\n }\n }\n }\n private changeDependedProperties(question: Question, dependedsQuetion: (name: string) => Question,\n dependedsValue: (name: string) => any) {\n const prop: JsonObjectProperty = (<any>question).property;\n if (!prop) return;\n const properties = prop.getDependedProperties();\n if (!properties) return;\n for (var i = 0; i < properties.length; i++) {\n var name = properties[i];\n var q = dependedsQuetion(name);\n if (!q) continue;\n this.updateDependedPropertiesEditor(q);\n const objValue = dependedsValue(name);\n if (!Helpers.isTwoValueEquals(q.value, objValue)) {\n q.value = objValue;\n }\n PropertyGridEditorCollection.onMasterValueChanged(\n (<any>question).obj,\n (<any>q).property,\n q\n );\n }\n }\n private updateDependedPropertiesEditor(editor: Question) {\n const obj: Base = (<any>editor).obj;\n if (!obj) return;\n const property: JsonObjectProperty = (<any>editor).property;\n if (!!property && property.onPropertyEditorUpdate) {\n property.onPropertyEditorUpdate(obj, editor);\n }\n }\n private updateDependedPropertiesEditors() {\n const questions = this.survey.getAllQuestions();\n for (var i = 0; i < questions.length; i++) {\n this.updateDependedPropertiesEditor(questions[i]);\n }\n }\n private onAfterRenderQuestion(options: any) {\n PropertyGridEditorCollection.onAfterRenderQuestion(\n this.obj,\n options.question.property,\n options\n );\n }\n private isCellCreating = false;\n private onMatrixCellCreated(options: any) {\n this.isCellCreating = true;\n PropertyGridEditorCollection.onMatrixCellCreated(\n this.obj,\n options.question.property,\n options\n );\n this.isCellCreating = false;\n var obj = options.row.editingObj;\n if (!obj) return;\n var prop = Serializer.findProperty(obj.getType(), options.columnName);\n if (!prop) return;\n const allowEditRow = this.getMatrixAllowEditRow(options.question, options.row);\n options.cellQuestion.readOnly = !allowEditRow || PropertyJSONGenerator.isPropertyReadOnly(\n prop,\n this.options,\n obj,\n this.obj,\n options.question.property\n );\n }\n private onMatrixCellValueChanging(options: any) {\n if (this.isCellCreating) return;\n var changingOptions = {\n obj: options.row.editingObj,\n propertyName: options.columnName,\n value: options.oldValue,\n newValue: options.value,\n doValidation: false\n };\n this.options.onValueChangingCallback(changingOptions);\n options.value = changingOptions.newValue;\n }\n private onMatrixCellValidate(options: any) {\n if (this.isCellCreating) return;\n const q = options.row.getQuestionByColumnName(options.columnName);\n if (!q || !q.property) return;\n options.error = this.validateQuestionValue(<any>options.row.editingObj, q, q.property, options.value);\n }\n private onGetMatrixRowAction(options: any) {\n PropertyGridEditorCollection.onGetMatrixRowAction(\n this.obj,\n options.question.property,\n options,\n (obj: Base): void => {\n this.setObjFromAction(obj, options.question.name);\n }\n );\n }\n private onUpdateQuestionCssClasses(options: any) {\n PropertyGridEditorCollection.onUpdateQuestionCssClasses(\n this.obj,\n options.question.property,\n options\n );\n }\n private onGetQuestionTitleActions(options: any) {\n PropertyGridEditorCollection.onGetQuestionTitleActions(\n this.obj,\n options.question.property,\n options\n );\n }\n private onMatrixCellValueChanged(options: any) {\n if (this.isCellCreating) return;\n const cellQuestion = options.row.getQuestionByName(options.columnName);\n if (!!cellQuestion) {\n this.changeDependedProperties(cellQuestion, (name: string): Question => { return options.row.getQuestionByName(name); },\n (name: string): any => { return options.row.getValue(name); });\n }\n PropertyGridEditorCollection.onMatrixCellValueChanged(\n this.obj,\n options.question.property,\n options\n );\n }\n private getMatrixAllowRemoveRow(question: Question, row: MatrixDynamicRowModel): boolean {\n if ((<any>row).allowDeleteRow === undefined) {\n this.calculateMatrixAllowOperations(question, row);\n }\n return (<any>row).allowDeleteRow;\n }\n private getMatrixOnRowRemoving(question: Question, row: MatrixDynamicRowModel): boolean {\n return this.options.onCollectionItemDeletingCallback(<any>this.obj, (<any>question).property, question.value, row.editingObj);\n }\n private getMatrixAllowEditRow(question: Question, row: MatrixDynamicRowModel): boolean {\n if (question.readOnly)\n return false;\n if ((<any>row).allowEditRow === undefined) {\n this.calculateMatrixAllowOperations(question, row);\n }\n return (<any>row).allowEditRow;\n }\n private calculateMatrixAllowOperations(question: Question, row: MatrixDynamicRowModel) {\n const rowOptions: ICollectionItemAllowOperations = { allowDelete: this.onMatrixAllowRemoveRow(question, row), allowEdit: true };\n this.options.onCollectionItemAllowingCallback(<any>this.obj,\n (<any>question).property,\n question.value,\n row.editingObj,\n rowOptions\n );\n\n (<any>row).allowDeleteRow = rowOptions.allowDelete;\n (<any>row).allowEditRow = rowOptions.allowEdit;\n }\n private onMatrixAllowRemoveRow(question: Question, row: MatrixDynamicRowModel): boolean {\n var res = PropertyGridEditorCollection.onMatrixAllowRemoveRow(\n this.obj,\n (<any>question).property,\n row\n );\n return this.options.onCanDeleteItemCallback(\n <any>this.obj,\n row.editingObj,\n res\n );\n }\n private onMatrixRowAdded(options: any) {\n var item = options.row.editingObj;\n if (Serializer.isDescendantOf(item.getType(), \"itemvalue\")) {\n this.options.onItemValueAddedCallback(\n <any>this.obj,\n options.question.property.name,\n options.row.editingObj,\n options.question.value\n );\n }\n if (Serializer.isDescendantOf(item.getType(), \"matrixdropdowncolumn\")) {\n this.options.onMatrixDropdownColumnAddedCallback(\n <any>this.obj,\n options.row.editingObj,\n options.question.value\n );\n }\n }\n}\n\nexport abstract class PropertyGridEditor implements IPropertyGridEditor {\n constructor() { }\n public abstract fit(prop: JsonObjectProperty): boolean;\n public abstract getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any;\n showModalPropertyEditor(\n editor: IPropertyGridEditor,\n property: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions,\n onClose?: (reason: \"apply\" | \"cancel\") => void\n ): IPropertyEditorSetup {\n const obj = (<any>question).obj;\n const surveyPropertyEditor = editor.createPropertyEditorSetup(\n obj,\n property,\n question,\n options\n );\n if (!surveyPropertyEditor) return null;\n if (property.type !== \"condition\") {\n surveyPropertyEditor.editSurvey.css = defaultV2Css;\n }\n if (!settings.showModal) return surveyPropertyEditor;\n const prevCurrentLocale = surveyLocalization.currentLocale;\n const locale = editorLocalization.currentLocale;\n surveyLocalization.currentLocale = locale;\n const popupModel: PopupBaseViewModel = settings.showModal(\n \"survey\",\n {\n survey: surveyPropertyEditor.editSurvey,\n model: surveyPropertyEditor.editSurvey\n },\n (): boolean => {\n this.onModalPropertyEditorClosed(editor, property, question, options, \"apply\");\n onClose && onClose(\"apply\");\n return surveyPropertyEditor.apply();\n },\n () => {\n this.onModalPropertyEditorClosed(editor, property, question, options, \"cancel\");\n onClose && onClose(\"cancel\");\n },\n \"sv-property-editor\",\n question.title, options.isMobileView ? \"overlay\" : \"popup\"\n );\n popupModel.locale = locale;\n surveyLocalization.currentLocale = prevCurrentLocale;\n this.onModalPropertyEditorShown(editor, property, question, options);\n options.onPropertyGridShowModalCallback(obj, property, question, surveyPropertyEditor, popupModel);\n return surveyPropertyEditor;\n }\n protected onModalPropertyEditorShown(editor: IPropertyGridEditor,\n property: JsonObjectProperty, question: Question,\n options: ISurveyCreatorOptions\n ): void {\n\n }\n protected onModalPropertyEditorClosed(editor: IPropertyGridEditor,\n property: JsonObjectProperty, question: Question,\n options: ISurveyCreatorOptions, reason: \"apply\" | \"cancel\"): void {\n\n }\n public isSupportGrouping(): boolean {\n return false;\n }\n onUpdateQuestionCssClasses(obj: Base, options: any) {\n if (!this.isSupportGrouping()) return;\n const question = options.question;\n if (!question || !question.parent) return;\n const index = question.parent.elements.indexOf(question);\n if (index < 1) return;\n if (question.parent.elements[index - 1].getType() !== question.getType()) return;\n options.cssClasses.mainRoot += \" spg-row-narrow__question\";\n }\n}\n\nexport class PropertyGridEditorBoolean extends PropertyGridEditor {\n public fit(prop: JsonObjectProperty, context?: string): boolean {\n return prop.type == \"boolean\" || prop.type == \"switch\";\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n return {\n type: \"boolean\",\n default: false,\n renderAs: \"checkbox\",\n titleLocation: \"hidden\"\n };\n }\n public isSupportGrouping(): boolean {\n return true;\n }\n}\nexport abstract class PropertyGridEditorStringBase extends PropertyGridEditor {\n protected updateMaxLength(prop: JsonObjectProperty, json: any): any {\n if (prop.maxLength > 0) {\n json.maxLength = prop.maxLength;\n }\n return json;\n }\n}\nexport class PropertyGridEditorString extends PropertyGridEditorStringBase {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"string\";\n }\n public isDefault() {\n return true;\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n const json = this.updateMaxLength(prop, { type: \"text\" });\n if (prop.name == \"name\") {\n json.textUpdateMode = \"onBlur\";\n }\n if (!!prop.dataList) {\n json.dataList = prop.dataList;\n }\n return json;\n }\n}\nexport class PropertyGridEditorNumber extends PropertyGridEditor {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"number\" || prop.type == \"responsiveImageSize\";\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n var res: any = { type: \"text\", inputType: \"number\", textUpdateMode: \"onBlur\" };\n if (prop.minValue !== undefined) {\n res.min = prop.minValue;\n }\n if (prop.maxValue !== undefined) {\n res.max = prop.maxValue;\n }\n return res;\n }\n}\n\nexport class PropertyGridEditorImageSize extends PropertyGridEditorString {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"string\" && (prop.name == \"imageHeight\" || prop.name == \"imageWidth\");\n }\n public isDefault(): boolean {\n return false;\n }\n public onCreated(obj: Base, question: Question, prop: JsonObjectProperty) {\n const isDefaultValue = (imageHeight: number, imageWidth: number) => {\n const imageHeightProperty = Serializer.findProperty(obj.getType(), \"imageHeight\");\n const imageWidthProperty = Serializer.findProperty(obj.getType(), \"imageWidth\");\n if(!imageHeightProperty && !imageWidthProperty) return false;\n return imageHeightProperty.isDefaultValue(imageHeight) && imageWidthProperty.isDefaultValue(imageWidth);\n };\n question.valueFromDataCallback = function (value: any): any {\n const isDefaultSize = isDefaultValue(obj[\"imageHeight\"], obj[\"imageWidth\"]);\n return isDefaultSize ? undefined : value;\n };\n }\n}\nexport class PropertyGridEditorText extends PropertyGridEditorStringBase {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type === \"text\";\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n return this.updateMaxLength(prop, {\n type: \"comment\"\n });\n }\n}\nexport class PropertyGridEditorHtml extends PropertyGridEditorStringBase {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type === \"html\";\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n return this.updateMaxLength(prop, {\n type: \"comment\"\n });\n }\n}\nexport class PropertyGridEditorColor extends PropertyGridEditor {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"color\";\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n return { type: \"text\", inputType: \"color\" };\n }\n}\nexport class PropertyGridEditorStringArray extends PropertyGridEditor {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"string[]\";\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n return { type: \"comment\" };\n }\n public onCreated(obj: Base, question: Question, prop: JsonObjectProperty) {\n question.valueFromDataCallback = function (val: any): any {\n if (!Array.isArray(val)) return \"\";\n return val.join(\"\\n\");\n };\n question.valueToDataCallback = function (val: any): any {\n if (!val) return [];\n if (Array.isArray(val) && !val[\"split\"]) return val;\n return val.split(\"\\n\");\n };\n }\n}\n\nexport class PropertyGridEditorDropdown extends PropertyGridEditor {\n public fit(prop: JsonObjectProperty): boolean {\n return this.isLocaleProp(prop) || prop.hasChoices;\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n var choices = this.getChoices(obj, prop);\n\n var json: any = {\n type: this.renderAsButtonGroup(prop, choices)\n ? \"buttongroup\"\n : \"dropdown\",\n choices: choices,\n showOptionsCaption: false\n };\n this.updateObjBasedOnEmptyValueItem(prop, choices, json);\n return json;\n }\n private getChoices(obj: Base, prop: JsonObjectProperty): Array<any> {\n return prop.getChoices(obj, (choices: any) => { });\n }\n private updateObjBasedOnEmptyValueItem(prop: JsonObjectProperty, choices: Array<any>, objOrJson: any): void {\n const emptyValueItem: ItemValue = this.getEmptyJsonItemValue(prop, choices);\n if (!!emptyValueItem) {\n objOrJson.showOptionsCaption = true;\n objOrJson.allowClear = true;\n if (emptyValueItem.text) {\n objOrJson.optionsCaption = emptyValueItem.text;\n }\n }\n }\n protected get canRenderAsButtonGroup(): boolean {\n return creatorSettings.propertyGrid.useButtonGroup;\n }\n protected renderAsButtonGroup(\n prop: JsonObjectProperty,\n choices: Array<any>\n ): boolean {\n if (this.isLocaleProp(prop)) return false;\n if (\n !this.canRenderAsButtonGroup ||\n !choices ||\n choices.length == 0 ||\n choices.length > 4\n )\n return false;\n var charCount = 0;\n for (var i = 0; i < choices.length; i++) {\n var text = this.getLocalizedText(\n prop,\n !!choices[i].value ? choices[i].value : choices[i]\n );\n charCount += !!text ? text.length : 0;\n }\n return charCount < creatorSettings.propertyGrid.maxCharsInButtonGroup;\n }\n onCreated(obj: Base, question: Question, prop: JsonObjectProperty) {\n this.setChoices(obj, question, prop);\n question.displayValueCallback = (text: string): string => {\n return !text ? (<QuestionDropdownModel>question).optionsCaption : text;\n };\n }\n onMasterValueChanged(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question\n ): void {\n this.setChoices(obj, question, prop);\n if (!question.isEmpty()) {\n if (!ItemValue.getItemByValue((<QuestionSelectBase>question).choices, question.value)) {\n question.clearValue();\n }\n }\n }\n private setChoicesCore(\n question: Question,\n prop: JsonObjectProperty,\n propChoices: Array<any>\n ) {\n if (!propChoices || !Array.isArray(propChoices) || propChoices.length == 0)\n return;\n this.updateObjBasedOnEmptyValueItem(prop, propChoices, question);\n (<QuestionSelectBase>question).choices = this.choicesFromPropChoices(prop, propChoices);\n }\n private isLocaleProp(prop: JsonObjectProperty): boolean {\n return prop.name === \"locale\";\n }\n private getLocalizedText(prop: JsonObjectProperty, value: string): string {\n if (this.isLocaleProp(prop)) {\n let text = editorLocalization.getLocaleName(value);\n if (text) return text;\n }\n if (prop.name === \"cellType\") {\n let text = editorLocalization.getString(\"qt.\" + value);\n if (text) return text;\n }\n if (value === null) return null;\n return editorLocalization.getPropertyValueInEditor(prop.name, value);\n }\n private choicesFromPropChoices(\n prop: JsonObjectProperty,\n propChoices: Array<any>\n ): Array<any> {\n var choices = [];\n for (var i = 0; i < propChoices.length; i++) {\n var jsonItem = this.getJsonItem(prop, propChoices[i]);\n if (!Helpers.isValueEmpty(jsonItem.value)) {\n choices.push(jsonItem);\n }\n }\n return choices;\n }\n private getJsonItem(prop: JsonObjectProperty, item: any): any {\n var jsonItem: any = { value: item.value !== undefined ? item.value : item };\n var text = !!item.text ? item.text : \"\";\n if (!text) {\n text = this.getLocalizedText(prop, jsonItem.value);\n }\n if (!!text && text != jsonItem.value) {\n jsonItem.text = text;\n }\n return jsonItem;\n }\n private setChoices(obj: Base, question: Question, prop: JsonObjectProperty) {\n var propChoices = prop.getChoices(obj, (choices: any) => {\n this.setChoicesCore(question, prop, choices);\n });\n this.setChoicesCore(question, prop, propChoices);\n\n }\n private getEmptyJsonItemValue(\n prop: JsonObjectProperty,\n choices: Array<any>\n ): any {\n if (!choices) return null;\n for (var i = 0; i < choices.length; i++) {\n var item = choices[i];\n var value = item.value !== undefined ? item.value : item;\n if (Helpers.isValueEmpty(value)) return this.getJsonItem(prop, item);\n }\n return null;\n }\n}\n\nexport class PropertyGridEditorSet extends PropertyGridEditorDropdown {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"set\" || prop.type == \"multiplevalues\";\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n var json = super.getJSON(obj, prop, options);\n var hasTagbox = !!Serializer.findClass(\"tagbox\");\n json.type = hasTagbox ? \"tagbox\" : \"checkbox\";\n json.hasSelectAll = !hasTagbox;\n return json;\n }\n}\nexport class PropertyGridEditorPage extends PropertyGridEditorDropdown {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.hasChoices && prop.name == \"page\";\n }\n protected get canRenderAsButtonGroup(): boolean {\n return false;\n }\n onCreated(obj: Base, question: Question, prop: JsonObjectProperty) {\n super.onCreated(obj, question, prop);\n question.valueFromDataCallback = (val: any): any => {\n return !!val ? val.name : \"\";\n };\n question.valueToDataCallback = (val: any): any => {\n if (!val || !obj || !obj.getSurvey()) return undefined;\n return (<SurveyModel>obj.getSurvey()).getPageByName(val);\n };\n }\n}\nexport class PropertyGridEditorQuestion extends PropertyGridEditor {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"question\";\n }\n public getJSON(obj: Base, prop: JsonObjectProperty, options: ISurveyCreatorOptions): any {\n const result = {\n type: \"dropdown\",\n optionsCaption: editorLocalization.getString(\"pe.conditionSelectQuestion\"),\n choices: this.getChoices(obj, prop, options)\n };\n if (prop.type == \"question\") {\n result[\"allowClear\"] = false;\n }\n return result;\n }\n private getChoices(obj: Base, prop: JsonObjectProperty, options: ISurveyCreatorOptions): Array<any> {\n var survey = EditableObject.getSurvey(obj);\n if (!survey) return [];\n var questions = this.getQuestions(survey, obj);\n if (!questions) questions = [];\n var showTitles = !!options && options.showTitlesInExpressions;\n var qItems = questions.map((q) => {\n let text = showTitles ? (<any>q).locTitle.renderedHtml : q.name;\n if (!!options) text = options.getObjectDisplayName(q, \"property-grid:property-editor\", \"property-editor\", text);\n let value = this.getItemValue(<any>q);\n return { value: value, text: text };\n });\n SurveyHelper.sortItems(qItems);\n return qItems;\n }\n\n protected getQuestions(survey: SurveyModel, obj: Base): Array<Question> {\n return survey.getAllQuestions();\n }\n\n protected getItemValue(question: Question): any {\n return question.name;\n }\n}\n\nexport class PropertyGridEditorQuestionSelectBase extends PropertyGridEditorQuestion {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"question_selectbase\";\n }\n\n protected getQuestions(survey: SurveyModel, obj: Base): Array<Question> {\n let questions = super.getQuestions(survey, obj);\n let res = [];\n for (let i = 0; i < questions.length; i++) {\n if (questions[i] === obj) continue;\n if (Serializer.isDescendantOf(questions[i].getType(), \"selectbase\")) {\n res.push(questions[i]);\n }\n }\n return res;\n }\n}\n\nexport class PropertyGridEditorQuestionValue extends PropertyGridEditorQuestion {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"questionvalue\";\n }\n protected getItemValue(question: Question): any {\n return question.getValueName();\n }\n protected getQuestions(survey: SurveyModel, obj: Base): Array<Question> {\n const questions = super.getQuestions(survey, obj);\n return questions.filter(q => { return !Serializer.isDescendantOf(q.getType(), \"nonvalue\"); });\n }\n}\n\nPropertyGridEditorCollection.register(new PropertyGridEditorBoolean());\nPropertyGridEditorCollection.register(new PropertyGridEditorString());\nPropertyGridEditorCollection.register(new PropertyGridEditorNumber());\nPropertyGridEditorCollection.register(new PropertyGridEditorColor());\nPropertyGridEditorCollection.register(new PropertyGridEditorText());\nPropertyGridEditorCollection.register(new PropertyGridEditorHtml());\nPropertyGridEditorCollection.register(new PropertyGridEditorDropdown());\nPropertyGridEditorCollection.register(new PropertyGridEditorSet());\nPropertyGridEditorCollection.register(new PropertyGridEditorPage());\nPropertyGridEditorCollection.register(new PropertyGridEditorStringArray());\nPropertyGridEditorCollection.register(new PropertyGridEditorQuestion());\nPropertyGridEditorCollection.register(new PropertyGridEditorQuestionValue());\nPropertyGridEditorCollection.register(new PropertyGridEditorQuestionSelectBase());\nPropertyGridEditorCollection.register(new PropertyGridEditorImageSize());\n\nQuestionFactory.Instance.registerQuestion(\"buttongroup\", (name) => {\n return new QuestionButtonGroupModel(name);\n});\n","import { Base, ComputedUpdater, IAction, ISurveyData, ItemValue, JsonMetadata, JsonMetadataClass, JsonObjectProperty, MatrixDropdownColumn, MatrixDropdownRowModelBase, MatrixDynamicRowModel, PanelModel, Question, QuestionMatrixDropdownModelBase, QuestionMatrixDropdownRenderedRow, QuestionMatrixDynamicModel, Serializer } from \"survey-core\";\nimport { editorLocalization } from \"../editorLocalization\";\nimport { SurveyQuestionProperties } from \"../question-editor/properties\";\nimport { ISurveyCreatorOptions } from \"../creator-settings\";\nimport { getNextItemText, getNextValue } from \"../utils/utils\";\nimport { FastEntryEditor, FastEntryEditorBase } from \"./fast-entry\";\nimport {\n IPropertyEditorSetup,\n PropertyGridEditor,\n PropertyGridEditorCollection,\n PropertyJSONGenerator,\n} from \"./index\";\nimport { updateMatrixRemoveAction } from \"../utils/actions\";\n\nexport abstract class PropertyGridEditorMatrix extends PropertyGridEditor {\n static getNewColumnName(\n objs: Array<any>,\n keyPropName: string,\n baseName: string\n ): string | number {\n var arr = [];\n if (Array.isArray(objs)) {\n for (var i = 0; i < objs.length; i++) {\n arr.push(objs[i][keyPropName]);\n }\n }\n return getNextValue(baseName, arr);\n }\n public onCreated(obj: Base, question: Question, prop: JsonObjectProperty) {\n (<any>question).onGetValueForNewRowCallBack = (\n sender: QuestionMatrixDynamicModel\n ): any => {\n return this.createNewItem(sender, prop);\n };\n this.setupMatrixQuestion(obj, <QuestionMatrixDynamicModel>question, prop);\n }\n private initializePlaceholder(rowObj: any, cellQuestion: Question, propertyName: string) {\n const objType = typeof rowObj.getType === \"function\" && rowObj.getType();\n if (cellQuestion.getType() === \"text\" && !!objType) {\n if (propertyName === \"text\" && objType === \"itemvalue\") {\n (<any>cellQuestion).placeholder = new ComputedUpdater<string>(() => rowObj.text);\n }\n if (propertyName === \"title\" && objType === \"matrixdropdowncolumn\") {\n (<any>cellQuestion).placeholder = new ComputedUpdater<string>(() => rowObj.title);\n }\n }\n }\n public onMatrixCellCreated(obj: Base, options: any) {\n const rowObj = options.row.editingObj;\n if (!rowObj) return;\n const q = options.cellQuestion;\n q.obj = rowObj;\n this.initializePlaceholder(rowObj, q, options.columnName);\n q.property = Serializer.findProperty(rowObj.getType(), options.columnName);\n }\n private updateMatixActionsClasses(actions: Array<IAction>) {\n actions.forEach(action => {\n action.innerCss = `${action.innerCss || \"\"} spg-action-button--muted`;\n });\n }\n public onGetMatrixRowAction(\n obj: Base,\n options: any,\n setObjFunc: (obj: Base) => void\n ) {\n const question: QuestionMatrixDynamicModel = options.question;\n const row: MatrixDynamicRowModel = options.row;\n const actions: IAction[] = options.actions;\n if (this.getEditItemAsStandAlone()) {\n actions.push({\n id: \"svd-grid-edit-column\",\n iconName: \"icon-edit\",\n title: editorLocalization.getString(\"pe.edit\"),\n visibleIndex: 0,\n showTitle: false,\n location: \"end\",\n action: () => {\n var column = <MatrixDropdownColumn>options.row.editingObj;\n setObjFunc(column);\n }\n });\n }\n const showDetailAction: IAction = actions.filter(\n (item: IAction) => item.id === \"show-detail\"\n )[0];\n updateMatrixRemoveAction(question, actions, row);\n if (!!showDetailAction) {\n showDetailAction.component = \"sv-action-bar-item\";\n showDetailAction.iconName = this.getShowDetailActionIconName(row);\n showDetailAction.showTitle = false;\n showDetailAction.location = \"end\";\n showDetailAction.ariaExpanded = row.isDetailPanelShowing;\n showDetailAction.action = () => {\n row.showHideDetailPanelClick();\n showDetailAction.iconName = row.isDetailPanelShowing ? \"icon-editing-finish\" : \"icon-edit\";\n };\n showDetailAction.visibleIndex = 0;\n showDetailAction.visible = this.hasPropertiesInDetail;\n row.onDetailPanelShowingChanged = () => {\n showDetailAction.iconName = this.getShowDetailActionIconName(row);\n showDetailAction.ariaExpanded = row.isDetailPanelShowing;\n };\n }\n this.updateMatixActionsClasses(actions);\n }\n private getShowDetailActionIconName(row: MatrixDynamicRowModel) {\n return row.isDetailPanelShowing ? \"icon-editing-finish\" : \"icon-edit\";\n }\n public onGetQuestionTitleActions(obj: Base, options: any): void {\n const question: QuestionMatrixDynamicModel = options.question;\n options.titleActions.push({\n id: \"add-item\",\n iconName: \"icon-add\",\n title: question.addRowText,\n showTitle: false,\n action: () => {\n question.addRow();\n },\n enabled: <any>new ComputedUpdater<boolean>(() => (<QuestionMatrixDropdownModelBase>question).canAddRow)\n });\n }\n protected createNewItem(\n matrix: QuestionMatrixDynamicModel,\n prop: JsonObjectProperty\n ): Base {\n var json: any = {};\n var baseValue = this.getBaseValue(prop);\n var keyPropName = this.getKeyValue();\n if (!baseValue) {\n baseValue = \"item\";\n }\n var keyValue = null;\n if (!!baseValue && !!keyPropName) {\n var newName = PropertyGridEditorMatrix.getNewColumnName(\n matrix.value,\n keyPropName,\n baseValue\n );\n keyValue = newName;\n }\n var item = Serializer.createClass(this.getDefaultClassName(prop), json);\n if (!!keyValue) {\n item[keyPropName] = keyValue;\n }\n if (!!this.getObjTypeName()) {\n item[this.getObjTypeName()] = item.getType();\n }\n const arr = (<any>matrix).obj[prop.name];\n if (Serializer.isDescendantOf(item.getType(), \"itemvalue\")) {\n item.text = getNextItemText(arr);\n }\n arr.push(item);\n if (arr != matrix.value) {\n matrix.value = arr;\n }\n return item;\n }\n protected getDefaultClassName(prop: JsonObjectProperty): string {\n return prop.className;\n }\n protected getBaseValue(prop: JsonObjectProperty): string {\n return prop.getBaseValue();\n }\n protected getKeyValue(): string {\n return \"\";\n }\n protected getColumnNames(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): Array<string> {\n var names = this.getPropertiesNames(obj, prop, options);\n if (!!names && names.length > 0) {\n return names;\n }\n return this.getDefaultListProperties(prop);\n }\n protected getColumnClassName(obj: Base, prop: JsonObjectProperty): string {\n return prop.className;\n }\n protected getPropertiesNames(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): Array<string> {\n var res = [];\n var properties = this.getDefinedListProperties(obj, prop, options);\n for (var i = 0; i < properties.length; i++) {\n res.push(properties[i].name);\n }\n if (res.length == 0) {\n res = this.getDefaulColumnNames();\n }\n return res;\n }\n protected getDefinedListProperties(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): Array<any> {\n if (!prop.className) {\n return [];\n }\n var newObj = Serializer.createClass(prop.className);\n if (!newObj) {\n return [];\n }\n var props = new SurveyQuestionProperties(\n newObj,\n <any>options,\n this.getColumnClassName(obj, prop),\n \"list\",\n obj,\n <any>prop\n );\n if (props.getTabs().length == 0) {\n return [];\n }\n return props.getTabs()[0].properties;\n }\n protected getDefaultListProperties(prop: JsonObjectProperty): Array<string> {\n var res = [];\n if (!!prop && !!prop.className) {\n var properties = Serializer.getProperties(prop.className);\n for (var i = 0; i < properties.length; i++) {\n if (!this.isPropertyShownInList(properties[i])) {\n continue;\n }\n res.push(properties[i].name);\n }\n }\n return res.length > 0 ? res : this.getDefaulColumnNames();\n }\n protected getDefaulColumnNames(): Array<string> {\n return [];\n }\n private isPropertyShownInList(prop: JsonObjectProperty): boolean {\n return prop.visible && prop.showMode !== \"form\";\n }\n protected getObjTypeName(): string {\n return \"\";\n }\n protected hasDetailPanel(): boolean {\n return !this.getEditItemAsStandAlone();\n }\n private hasPropertiesInDetail: boolean;\n protected setupMatrixQuestion(\n obj: Base,\n matrix: QuestionMatrixDynamicModel,\n prop: JsonObjectProperty\n ) {\n this.hasPropertiesInDetail =\n this.hasDetailPanel() && this.calcHasPropertiesInDetail(matrix, prop);\n matrix.onHasDetailPanelCallback = (\n row: MatrixDropdownRowModelBase\n ): boolean => {\n return (<any>row).allowEditRow !== false && this.hasPropertiesInDetail;\n };\n matrix.onCreateDetailPanelRenderedRowCallback = (\n renderedRow: QuestionMatrixDropdownRenderedRow\n ) => {\n renderedRow.cells = [renderedRow.cells[1]];\n renderedRow.cells[0].colSpans += 2;\n };\n const q: any = matrix;\n matrix.onCreateDetailPanelCallback = (\n row: MatrixDropdownRowModelBase,\n panel: PanelModel\n ) => {\n new PropertyJSONGenerator(\n row.editingObj,\n q.options,\n q.obj,\n q.property\n ).setupObjPanel(panel, true);\n };\n matrix.allowRowsDragAndDrop = this.getAllowRowDragDrop(prop) && !matrix.isReadOnly;\n if (!!q.options) {\n this.setupUsingOptions(obj, matrix, q.options, prop);\n }\n if (!!prop.uniquePropertyName) {\n const column = matrix.getColumnByName(prop.uniquePropertyName);\n if (!!column) {\n column.isUnique = true;\n }\n }\n }\n protected getAllowRowDragDrop(prop: JsonObjectProperty): boolean { return false; }\n private calcHasPropertiesInDetail(\n matrix: QuestionMatrixDynamicModel,\n prop: JsonObjectProperty\n ): boolean {\n if (!prop.className) return true;\n var newObj = Serializer.createClass(prop.className);\n if (!newObj) return true;\n var panel = new PanelModel(\"\");\n new PropertyJSONGenerator(\n newObj,\n (<any>matrix).options,\n (<any>matrix).obj,\n prop\n ).setupObjPanel(panel, true);\n return panel.elements.length > 0;\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n return this.getMatrixJSON(\n obj,\n prop,\n this.getColumnNames(obj, prop, options),\n options\n );\n }\n protected getMatrixJSON(\n obj: Base,\n prop: JsonObjectProperty,\n propNames: Array<string>,\n options: ISurveyCreatorOptions\n ): any {\n var className = prop.className;\n if (!className) {\n className = prop.baseClassName;\n }\n var columns = this.getColumnsJSON(obj, prop, propNames, options);\n var res: any = {\n type: \"matrixdynamic\",\n detailPanelMode: \"underRow\",\n cellType: \"text\",\n rowCount: 0,\n columns: columns,\n showHeader: columns.length > 2,\n hideColumnsIfEmpty: true,\n addRowText: this.getAddRowText(prop),\n keyDuplicationError: editorLocalization.getString(\n \"pe.propertyIsNoUnique\"\n ),\n emptyRowsText: this.getEmptyRowsText(prop)\n };\n if (this.getShowDetailPanelOnAdding()) {\n res.detailPanelShowOnAdding = true;\n }\n var maxRowCount = this.getMaximumRowCount(obj, prop, options);\n if (maxRowCount > 0) {\n res.maxRowCount = maxRowCount;\n }\n return res;\n }\n protected getEmptyRowsText(prop: JsonObjectProperty) {\n let locName = \"pe.listIsEmpty\";\n const propLocName = locName + \"@\" + prop.name;\n if (!!editorLocalization.hasString(propLocName)) {\n locName = propLocName;\n }\n return editorLocalization.getString(locName);\n }\n protected getMaximumRowCount(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): number {\n return -1;\n }\n protected getColumnsJSON(\n obj: Base,\n prop: JsonObjectProperty,\n propNames: Array<string>,\n options: ISurveyCreatorOptions\n ) {\n var className = prop.className;\n if (!className) {\n className = prop.baseClassName;\n }\n var res = new PropertyJSONGenerator(obj, options).createColumnsJSON(\n className,\n propNames\n );\n for (var i = 0; i < res.length; i++) {\n if (res[i].cellType == \"comment\") {\n res[i].cellType = \"text\";\n }\n }\n return res;\n }\n protected getEditItemAsStandAlone(): boolean {\n return false;\n }\n protected getShowDetailPanelOnAdding(): boolean {\n return false;\n }\n private getAddRowText(prop: JsonObjectProperty): string {\n var customLocStrName = \"pe.addNew@\" + prop.name;\n if (editorLocalization.hasString(customLocStrName)) {\n return editorLocalization.getString(customLocStrName);\n }\n return editorLocalization.getString(\"pe.addNew\");\n }\n private setupUsingOptions(\n obj: Base,\n matrix: QuestionMatrixDynamicModel,\n options: ISurveyCreatorOptions,\n prop: JsonObjectProperty\n ) {\n var evtOptions = {\n allowAddRemoveItems: true,\n allowRemoveAllItems: true,\n showTextView: true,\n allowBatchEdit: true\n // options.itemsEntryType\n };\n options.onSetPropertyEditorOptionsCallback(prop.name, <any>obj, evtOptions);\n if (!evtOptions.allowAddRemoveItems) {\n matrix.allowAddRows = false;\n matrix.allowRemoveRows = false;\n }\n (<any>matrix).allowRemoveAllItems = evtOptions.allowRemoveAllItems;\n (<any>matrix).showTextView = evtOptions.showTextView;\n (<any>matrix).allowBatchEdit = evtOptions.allowBatchEdit;\n }\n}\n\nexport class PropertyGridEditorMatrixItemValues extends PropertyGridEditorMatrix {\n public fit(prop: JsonObjectProperty): boolean {\n return (\n prop.isArray && Serializer.isDescendantOf(prop.className, \"itemvalue\")\n );\n }\n public isPropertyEditorSetupEnabled(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): boolean {\n if ((<any>question).showTextView === false) return false;\n var matrix = <QuestionMatrixDynamicModel>question;\n var column = matrix.getColumnByName(\"value\");\n var items = question.value;\n return (\n !!column &&\n column.isVisible &&\n !column.readOnly &&\n !this.hasMultipleLanguage(items) &&\n !this.hasVisibleIfOrEnableIf(items)\n );\n }\n protected getAllowRowDragDrop(prop: JsonObjectProperty): boolean { return true; }\n public createPropertyEditorSetup(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): IPropertyEditorSetup {\n var names = [];\n (<any>question).columns.forEach((col) => {\n names.push(col.name);\n });\n return new FastEntryEditor(obj[prop.name], options, prop.className, names);\n }\n public canClearPropertyValue(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): boolean {\n return (<any>question).allowRemoveAllItems !== false;\n }\n public clearPropertyValue(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): void {\n var arr = obj[prop.name];\n if (!Array.isArray(arr)) {\n return;\n }\n arr.splice(0, arr.length);\n }\n protected getColumnClassName(obj: Base, prop: JsonObjectProperty): string {\n return obj.getType() + \"@\" + prop.name;\n }\n protected getDefaulColumnNames(): Array<string> {\n return [\"value\", \"text\"];\n }\n protected getKeyValue(): string {\n return \"value\";\n }\n protected getMaximumRowCount(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): number {\n if (prop.name === \"choices\") return options.maximumChoicesCount;\n if (prop.name === \"rows\") return options.maximumRowsCount;\n if (prop.name === \"columns\") return options.maximumColumnsCount;\n if (prop.name === \"rateValues\") return options.maximumRateValues;\n return super.getMaximumRowCount(obj, prop, options);\n }\n private hasMultipleLanguage(items: Array<ItemValue>): boolean {\n if (!items || !Array.isArray(items)) {\n return false;\n }\n for (var i = 0; i < items.length; i++) {\n if (items[i].locText.hasNonDefaultText()) {\n return true;\n }\n }\n return false;\n }\n private hasVisibleIfOrEnableIf(items: Array<ItemValue>): boolean {\n if (!items || !Array.isArray(items)) {\n return false;\n }\n for (var i = 0; i < items.length; i++) {\n if (!!items[i].visibleIf || items[i].enableIf) {\n return true;\n }\n }\n return false;\n }\n}\n\nexport class PropertyGridEditorMatrixColumns extends PropertyGridEditorMatrix {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"matrixdropdowncolumns\";\n }\n protected getEditItemAsStandAlone(): boolean {\n return true;\n }\n protected getDefaulColumnNames(): Array<string> {\n return [\"name\", \"title\"];\n }\n protected getKeyValue(): string {\n return \"name\";\n }\n protected getBaseValue(prop: JsonObjectProperty): string {\n return \"column\";\n }\n protected getMaximumRowCount(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): number {\n return options.maximumColumnsCount;\n }\n protected getAllowRowDragDrop(prop: JsonObjectProperty): boolean { return true; }\n}\n\nexport class PropertyGridEditorMatrixPages extends PropertyGridEditorMatrix {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"surveypages\";\n }\n public onMatrixAllowRemoveRow(obj: Base, row: MatrixDynamicRowModel): boolean {\n var page: any = row.editingObj;\n if (!page || !page.survey) {\n return;\n }\n return page.survey.currentPage !== page;\n }\n protected getColumnClassName(obj: Base, prop: JsonObjectProperty): string {\n return \"page@\" + obj.getType();\n }\n protected getDefaulColumnNames(): Array<string> {\n return [\"name\", \"title\"];\n }\n protected hasDetailPanel(): boolean {\n return false;\n }\n protected getKeyValue(): string {\n return \"name\";\n }\n protected getBaseValue(prop: JsonObjectProperty): string {\n return \"page\";\n }\n protected getAllowRowDragDrop(prop: JsonObjectProperty): boolean { return true; }\n}\n\nexport class PropertyGridEditorMatrixCalculatedValues extends PropertyGridEditorMatrix {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"calculatedvalues\";\n }\n protected getColumnClassName(obj: Base, prop: JsonObjectProperty): string {\n return \"calculatedvalue@items\";\n }\n protected getDefaulColumnNames(): Array<string> {\n return [\"name\"];\n }\n protected getKeyValue(): string {\n return \"name\";\n }\n protected getBaseValue(prop: JsonObjectProperty): string {\n return \"var\";\n }\n protected getShowDetailPanelOnAdding(): boolean {\n return true;\n }\n protected setupMatrixQuestion(obj: Base, matrix: QuestionMatrixDynamicModel, prop: JsonObjectProperty): void {\n super.setupMatrixQuestion(obj, matrix, prop);\n matrix.isUniqueCaseSensitive = false;\n }\n}\nexport class PropertyGridEditorMatrixHtmlConditions extends PropertyGridEditorMatrix {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"htmlconditions\";\n }\n protected getDefaulColumnNames(): Array<string> {\n return [\"html\"];\n }\n protected getShowDetailPanelOnAdding(): boolean {\n return true;\n }\n}\nexport class PropertyGridEditorMatrixUrlConditions extends PropertyGridEditorMatrix {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"urlconditions\";\n }\n protected getDefaulColumnNames(): Array<string> {\n return [\"url\"];\n }\n protected getShowDetailPanelOnAdding(): boolean {\n return true;\n }\n}\nexport class PropertyGridEditorMatrixMutlipleTextItems extends PropertyGridEditorMatrix {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"textitem[]\";\n }\n /*\n protected getEditItemAsStandAlone(): boolean {\n return true;\n }*/\n protected getColumnClassName(obj: Base, prop: JsonObjectProperty): string {\n return \"multipletext@items\";\n }\n protected getDefaulColumnNames(): Array<string> {\n return [\"name\"];\n }\n protected getKeyValue(): string {\n return \"name\";\n }\n protected getBaseValue(prop: JsonObjectProperty): string {\n return \"item\";\n }\n protected getAllowRowDragDrop(): boolean {\n return true;\n }\n public createPropertyEditorSetup(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): IPropertyEditorSetup {\n var names = [];\n (<any>question).columns.forEach((col) => {\n names.push(col.name);\n });\n return new FastEntryEditorBase(obj[prop.name], options, prop.className, names);\n }\n public onMatrixCellCreated(obj: Base, options: any): void {\n super.onMatrixCellCreated(obj, options);\n const q = options.cellQuestion;\n if (!options.row.editingObj) return;\n const editor = options.row.editingObj.editor;\n if (!!editor && !!q.property) {\n editor.registerFunctionOnPropertyValueChanged(q.property.name, () => {\n q.value = editor[q.property.name];\n });\n }\n }\n}\n\nexport abstract class PropertyGridEditorMatrixMultipleTypes extends PropertyGridEditorMatrix {\n protected abstract getChoices(obj: Base): Array<any>;\n protected getColumnsJSON(\n obj: Base,\n prop: JsonObjectProperty,\n propNames: Array<string>,\n options: ISurveyCreatorOptions\n ) {\n var res = super.getColumnsJSON(obj, prop, propNames, options);\n if (!!this.getObjTypeName()) {\n res.unshift({\n name: this.getObjTypeName(),\n cellType: \"dropdown\"\n });\n }\n return res;\n }\n public onMatrixCellCreated(obj: Base, options: any) {\n super.onMatrixCellCreated(obj, options);\n const q = options.cellQuestion;\n if (options.columnName === this.getObjTypeName()) {\n q.showOptionsCaption = false;\n q.choices = this.getChoices(obj);\n q.value = options.row.editingObj.getType();\n }\n }\n public onMatrixCellValueChanged(obj: Base, options: any) {\n if (options.columnName != this.getObjTypeName()) {\n return;\n }\n var index = options.question.visibleRows.indexOf(options.row);\n if (index < 0) {\n return;\n }\n var isDetailPanelShowing = options.row.isDetailPanelShowing;\n var objJSON = options.row.editingObj.toJSON();\n delete objJSON.type;\n var newItem = Serializer.createClass(options.value);\n newItem.fromJSON(objJSON);\n newItem[this.getObjTypeName()] = newItem.getType();\n options.row.hideDetailPanel(true);\n options.question.value.splice(index, 1, newItem);\n options.row.value = newItem;\n if (isDetailPanelShowing) {\n options.row.showDetailPanel();\n }\n }\n protected getShowDetailPanelOnAdding(): boolean {\n return true;\n }\n}\n\nexport class PropertyGridEditorMatrixValidators extends PropertyGridEditorMatrixMultipleTypes {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"validators\";\n }\n protected getObjTypeName(): string {\n return \"validatorType\";\n }\n protected getDefaultClassName(prop: JsonObjectProperty): string {\n return \"expressionvalidator\";\n }\n protected getChoices(obj: Base): Array<any> {\n var names = this.getSupportedValidators(obj);\n var res = [];\n for (var i = 0; i < names.length; i++) {\n var name = names[i] + \"validator\";\n res.push({\n value: name,\n text: editorLocalization.getValidatorName(name)\n });\n }\n return res;\n }\n private getSupportedValidators(obj: any): Array<string> {\n if (!obj) return [];\n if (obj.getSupportedValidators) return obj.getSupportedValidators();\n if (obj.getOriginalObj)\n return this.getSupportedValidators(obj.getOriginalObj());\n return [];\n }\n}\n\nexport class PropertyGridEditorMatrixTriggers extends PropertyGridEditorMatrixMultipleTypes {\n private getAvailableTriggers(): Array<JsonMetadataClass> {\n return Serializer.getChildrenClasses(\"surveytrigger\", true).filter(classObj => classObj.name !== \"visibletrigger\");\n }\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"triggers\";\n }\n protected getObjTypeName(): string {\n return \"triggerType\";\n }\n protected getDefaultClassName(prop: JsonObjectProperty): string {\n const classes = this.getAvailableTriggers().map(tr => tr.name);\n if (!classes.length) return prop.name;\n\n if (classes.indexOf(\"runexpressiontrigger\") !== -1) {\n return \"runexpressiontrigger\";\n } else {\n return classes[0];\n }\n }\n protected getAllowRowDragDrop(prop: JsonObjectProperty): boolean { return true; }\n protected getChoices(obj: Base): Array<any> {\n return this.getAvailableTriggers().map((tr) => { return { value: tr.name, text: editorLocalization.getTriggerName(tr.name) }; });\n }\n}\n\nPropertyGridEditorCollection.register(new PropertyGridEditorMatrixItemValues());\nPropertyGridEditorCollection.register(new PropertyGridEditorMatrixColumns());\nPropertyGridEditorCollection.register(new PropertyGridEditorMatrixPages());\nPropertyGridEditorCollection.register(\n new PropertyGridEditorMatrixCalculatedValues()\n);\nPropertyGridEditorCollection.register(\n new PropertyGridEditorMatrixHtmlConditions()\n);\nPropertyGridEditorCollection.register(\n new PropertyGridEditorMatrixUrlConditions()\n);\nPropertyGridEditorCollection.register(\n new PropertyGridEditorMatrixMutlipleTextItems()\n);\nPropertyGridEditorCollection.register(new PropertyGridEditorMatrixValidators());\nPropertyGridEditorCollection.register(new PropertyGridEditorMatrixTriggers());","import { CreatorBase } from \"src/creator-base\";\nimport { Base, SurveyModel, property, ListModel, IAction, Action } from \"survey-core\";\nimport { SurveyHelper } from \"../survey-helper\";\n\nexport class ObjectSelectorItem extends Action {\n private textInLow: string;\n\n constructor(\n id: number,\n public data: Base,\n title: string,\n public level: number\n ) {\n super({ id: \"sv_item_selector_\" + id.toString(), title: title });\n }\n public hasText(filteredTextInLow: string): boolean {\n if (!filteredTextInLow) return true;\n if (!this.textInLow) {\n this.textInLow = this.title.toLocaleLowerCase();\n }\n return this.textInLow.indexOf(filteredTextInLow) > -1;\n }\n}\n\nexport class ObjectSelector {\n private surveyValue: SurveyModel;\n private deepestLevel: number;\n private filteredTextInLow: string;\n private itemsValue: Array<ObjectSelectorItem>;\n constructor(\n private creator: CreatorBase,\n survey: SurveyModel,\n private getObjectDisplayName: (\n obj: Base,\n area: string,\n reason: string,\n displayName: string\n ) => string = undefined\n ) {\n this.surveyValue = survey;\n this.rebuild();\n }\n public get survey() {\n return this.surveyValue;\n }\n public get items(): Array<ObjectSelectorItem> {\n return this.itemsValue;\n }\n public getItemByObj(obj: Base): IAction {\n var items = this.items;\n for (var i = 0; i < items.length; i++) {\n if (items[i].data === obj) return items[i];\n }\n return null;\n }\n public filterByText(filteredText: string): void {\n this.filteredTextInLow = !!filteredText ? filteredText.toLocaleLowerCase() : \"\";\n this.updateItemsVisibility();\n }\n private rebuild() {\n var objs = [];\n this.deepestLevel = 0;\n var root = this.createItem(this.survey, null);\n objs.push(root);\n for (var i = 0; i < this.survey.pages.length; i++) {\n var page = this.survey.pages[i];\n var itemsParent = root;\n if (!this.creator || this.creator.pageEditMode !== \"single\") {\n var pageItem = this.createItem(page, root);\n objs.push(pageItem);\n itemsParent = pageItem;\n }\n this.buildElements(objs, this.getElements(page), itemsParent);\n }\n this.itemsValue = objs;\n }\n private updateItemsVisibility() {\n for (var i = this.deepestLevel; i >= 0; i--) {\n this.updateItemsLevelVisibility(i);\n }\n }\n private updateItemsLevelVisibility(level: number) {\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n if (item.level !== level) continue;\n item.visible = this.hasVisibleChildren(i) || item.hasText(this.filteredTextInLow);\n }\n }\n private hasVisibleChildren(index: number): boolean {\n var level = this.items[index].level;\n for (var i = index + 1; i < this.items.length; i++) {\n if (this.items[i].level <= level) return false;\n if (this.items[i].visible) return true;\n }\n return false;\n }\n private getElements(element: any): Array<any> {\n return SurveyHelper.getElements(element);\n }\n private buildElements(\n objs: Array<any>,\n elements: Array<any>,\n parentItem: ObjectSelectorItem\n ) {\n for (var i = 0; i < elements.length; i++) {\n var el = elements[i];\n var item = this.createItem(el, parentItem);\n objs.push(item);\n this.buildElements(objs, this.getElements(el), item);\n }\n }\n private static uniqueId = 0;\n private createItem(obj: Base, parent: ObjectSelectorItem) {\n var item = new ObjectSelectorItem(\n ObjectSelector.uniqueId++,\n obj,\n this.getText(obj),\n parent != null ? parent.level + 1 : 0\n );\n if (item.level > this.deepestLevel) {\n this.deepestLevel = item.level;\n }\n return item;\n }\n private getText(obj: Base): string {\n var text = !!this.getObjectDisplayName\n ? this.getObjectDisplayName(obj, \"property-grid-header:element-list\", \"property-grid\", undefined)\n : SurveyHelper.getObjectName(obj, false);\n return text;\n }\n}\nexport class ObjectSelectorModel extends Base {\n private selector: ObjectSelector;\n private listModelValue: ListModel;\n\n @property() isVisible: boolean;\n\n constructor(private creator: CreatorBase, private getObjectDisplayName: (obj: Base, area: string, reason: string, displayName: string) => string = undefined) {\n super();\n }\n public get list(): ListModel {\n return this.listModelValue;\n }\n public show(\n survey: SurveyModel,\n selectedObj: Base,\n onClose: (obj: Base) => void\n ) {\n this.selector = new ObjectSelector(this.creator, survey, this.getObjectDisplayName);\n const selectedItem = this.selector.getItemByObj(selectedObj);\n if (!this.listModelValue) {\n this.listModelValue = new ListModel<Action>(\n this.selector.items,\n (item: IAction) => { onClose(item.data); },\n true, selectedItem,\n (text: string) => { this.selector.filterByText(text); });\n } else {\n this.listModelValue.setItems(this.selector.items);\n this.listModelValue.selectedItem = selectedItem;\n }\n this.isVisible = true;\n }\n public refresh() {\n this.listModelValue.refresh();\n }\n}\n","import { Base, SurveyModel, property, PopupModel, Action } from \"survey-core\";\nimport { PropertyGridModel } from \"./index\";\nimport { SelectionHistory } from \"../selection-history\";\nimport { SurveyHelper } from \"../survey-helper\";\nimport { ObjectSelectorModel } from \"./object-selector\";\nimport { CreatorBase } from \"../creator-base\";\nimport { settings } from \"../creator-settings\";\nimport { getLocString } from \"../editorLocalization\";\n\nexport class PropertyGridViewModel extends Base {\n public nextSelectionAction: Action;\n public prevSelectionAction: Action;\n public objectSelectionAction: Action;\n private selectorPopupModel: PopupModel;\n\n @property() hasPrev: boolean;\n @property() hasNext: boolean;\n @property() survey: SurveyModel;\n @property() selectedElementName: string;\n\n constructor(private propertyGridModel: PropertyGridModel, private creator: CreatorBase) {\n super();\n this.selectedElementName = this.getTitle();\n this.propertyGridModel.objValueChangedCallback = () => {\n this.onSurveyChanged();\n };\n this.propertyGridModel.changedFromActionCallback = (obj: Base, propertyName: string) => {\n if (!!this.selectionController) {\n this.selectionController.selectFromAction(obj, propertyName);\n }\n };\n this.initActions();\n\n this.creator.onPropertyChanged.add((sender, options) => {\n if (options.name === \"sidebarLocation\") {\n this.selectorPopupModel.horizontalPosition = this.creator.sidebarLocation == \"right\" ? \"left\" : \"right\";\n }\n });\n this.onSurveyChanged();\n }\n\n protected onPropertyValueChanged(name: string, oldValue: any, newValue: any) {\n super.onPropertyValueChanged(name, oldValue, newValue);\n\n if (!!this.nextSelectionAction && name === \"hasNext\") {\n this.nextSelectionAction.enabled = this.hasNext;\n }\n if (!!this.prevSelectionAction && name === \"hasPrev\") {\n this.prevSelectionAction.enabled = this.hasPrev;\n }\n }\n\n private get selectionController(): SelectionHistory {\n return this.creator.selectionHistoryController;\n }\n\n private onSurveyChanged() {\n this.survey = this.propertyGridModel.survey;\n if (!!this.survey) {\n this.survey.onValueChanged.add((sender: SurveyModel, options: any) => {\n if (options.name == \"name\" || options.name == \"title\") {\n this.updateTitle();\n }\n });\n }\n this.updateTitle();\n if (this.selectionController) {\n this.hasPrev = this.selectionController.hasPrev;\n this.hasNext = this.selectionController.hasNext;\n }\n }\n private updateTitle() {\n let titleName = this.getTitle();\n this.selectedElementName = titleName;\n this.objectSelectionAction.title = this.selectedElementName;\n }\n private getTitle(): string {\n var obj = this.getSelectedObj();\n if (!obj) return \"\";\n var displayName = SurveyHelper.getObjectName(obj, this.propertyGridModel.options.showObjectTitles);\n return this.propertyGridModel.options.getObjectDisplayName(obj, \"property-grid-header:selected-element\", \"property-grid-title\", displayName);\n }\n private getSelectedObj(): any {\n return this.propertyGridModel.obj;\n }\n private initActions() {\n if (settings.propertyGrid.showNavigationButtons) {\n this.prevSelectionAction = new Action({\n id: \"svd-grid-history-prev\",\n iconName: \"icon-arrow-left\",\n component: \"sv-action-bar-item\",\n title: getLocString(\"ed.prevSelected\"),\n showTitle: false,\n enabled: this.hasPrev,\n action: () => {\n this.selectionController.prev();\n }\n });\n\n this.nextSelectionAction = new Action({\n id: \"svd-grid-history-next\",\n iconName: \"icon-arrow-right\",\n component: \"sv-action-bar-item\",\n title: getLocString(\"ed.nextSelected\"),\n showTitle: false,\n enabled: this.hasNext,\n action: () => {\n this.selectionController.next();\n }\n });\n }\n\n const selectorModel = new ObjectSelectorModel(\n this.creator,\n (obj: Base, area: string, reason: string, displayName: string) => {\n return this.propertyGridModel.options.getObjectDisplayName(obj, area, reason, displayName);\n }\n );\n this.selectorPopupModel = new PopupModel(\n \"svc-object-selector\",\n { model: selectorModel },\n \"bottom\",\n \"center\"\n );\n this.selectorPopupModel.cssClass += \" svc-object-selector\";\n\n this.objectSelectionAction = new Action({\n id: \"svd-grid-object-selector\",\n title: this.selectedElementName,\n css: \"sv-action--object-selector sv-action-bar-item--secondary\",\n component: \"sv-action-bar-item-dropdown\",\n action: () => {\n this.selectorPopupModel.displayMode = this.creator.isMobileView ? \"overlay\" : \"popup\";\n selectorModel.show(\n this.selectionController.creator.survey,\n this.propertyGridModel.obj,\n (obj: Base) => {\n this.selectionController.selectFromAction(obj, \"name\");\n this.selectorPopupModel.toggleVisibility();\n }\n );\n this.selectorPopupModel.toggleVisibility();\n },\n popupModel: this.selectorPopupModel\n });\n }\n}","import {\n Base,\n JsonObjectProperty,\n ComponentCollection,\n QuestionDropdownModel,\n Question\n} from \"survey-core\";\nimport {\n PropertyGridEditorCollection,\n PropertyJSONGenerator,\n PropertyGridEditorQuestion,\n} from \"./index\";\nimport { ISurveyCreatorOptions } from \"../creator-settings\";\n\nvar json = {\n name: \"propertygrid_restfull\",\n showInToolbox: false,\n createElements: function (panel) {\n //tell ComponentCollection that it is composite question\n }\n};\n\nif (!ComponentCollection.Instance.getCustomQuestionByName(json.name)) {\n ComponentCollection.Instance.add(json as any);\n}\n\nexport class PropertyGridEditorQuestionRestfull extends PropertyGridEditorQuestion {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"restfull\";\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n return {\n type: \"propertygrid_restfull\",\n titleLocation: \"hidden\"\n };\n }\n onCreated(obj: Base, question: Question, prop: JsonObjectProperty, options: ISurveyCreatorOptions): void {\n new PropertyJSONGenerator(obj[prop.name], options, obj, prop).setupObjPanel(question[\"contentPanel\"], true);\n }\n}\n\nPropertyGridEditorCollection.register(new PropertyGridEditorQuestionRestfull());\n","import { Question, Base } from \"survey-core\";\nimport { PropertyEditorSetupValue } from \"./index\";\nimport { ISurveyCreatorOptions } from \"../creator-settings\";\nimport { SurveyHelper } from \"../survey-helper\";\nimport { editorLocalization } from \"../editorLocalization\";\n\nexport class DefaultValueEditor extends PropertyEditorSetupValue {\n constructor(\n public editQuestion: Question,\n protected propertyName: string,\n options: ISurveyCreatorOptions = null\n ) {\n super(options, false);\n this.setupSurvey();\n this.question.value = this.getQuestionValue();\n }\n public get question(): Question {\n return this.editSurvey.getQuestionByName(\"question\");\n }\n protected getSurveyJSON(): any {\n return {\n elements: [this.getQuestionJSON()]\n };\n }\n protected getQuestionJSON(): any {\n var json = this.editQuestion.toJSON();\n json.name = \"question\";\n json.title = json.title || this.editQuestion.name;\n json.type = this.editQuestion.getType();\n if (json.type == \"expression\") {\n json.type = \"text\";\n }\n if (!!json.cellType && json.type == \"matrixdropdowncolumn\") {\n json.type = json.cellType;\n delete json[\"cellType\"];\n }\n SurveyHelper.updateQuestionJson(json);\n return json;\n }\n protected getQuestionValue() {\n return this.editQuestion[this.propertyName];\n }\n protected getEditValue() {\n return this.question.value;\n }\n protected getSurveyCreationReason(): string {\n return \"default-value\";\n }\n public apply(): boolean {\n this.editQuestion[this.propertyName] = this.getEditValue();\n return true;\n }\n}\n\nexport class DefaultArrayValueEditor extends DefaultValueEditor {\n constructor(\n public editQuestion: Question,\n protected propertyName: string,\n options: ISurveyCreatorOptions = null\n ) {\n super(editQuestion, propertyName, options);\n }\n protected getQuestionValue(): any {\n var res = super.getQuestionValue();\n if (!res) return res;\n if (!Array.isArray(res)) {\n res = [res];\n }\n return res;\n }\n protected getEditValue(): any {\n var res = super.getEditValue();\n if (res && Array.isArray(res)) {\n if (res.length == 0) return null;\n return res[0];\n }\n return res;\n }\n}\nexport class DefaultMatrixRowValueEditor extends DefaultArrayValueEditor {\n constructor(\n public editQuestion: Question,\n protected propertyName: string,\n options: ISurveyCreatorOptions = null\n ) {\n super(editQuestion, propertyName, options);\n }\n protected getQuestionJSON(): any {\n var json = super.getQuestionJSON();\n json.type = \"matrixdynamic\";\n json.rowCount = 1;\n json.minRowCount = 1;\n json.maxRowCount = 1;\n json.columnsLocation = \"vertical\";\n return json;\n }\n}\nexport class DefaultPanelDynamicPanelValueEditor extends DefaultArrayValueEditor {\n constructor(\n public editQuestion: Question,\n protected propertyName: string,\n options: ISurveyCreatorOptions = null\n ) {\n super(editQuestion, propertyName, options);\n }\n protected getQuestionJSON(): any {\n var json = super.getQuestionJSON();\n json.panelCount = 1;\n json.minPanelCount = 1;\n json.maxPanelCount = 1;\n return json;\n }\n}\nexport class TriggerValueEditor extends DefaultValueEditor {\n constructor(\n public editQuestion: Question,\n public editObj: Base,\n protected propertyName: string,\n options: ISurveyCreatorOptions = null\n ) {\n super(editQuestion, propertyName, options);\n this.question.value = this.getQuestionValue();\n }\n protected getQuestionValue(): any {\n return !!this.editObj ? this.editObj[this.propertyName] : null;\n }\n public apply(): boolean {\n this.editObj[this.propertyName] = this.question.value;\n return true;\n }\n}\n","import { Base, Helpers, JsonObjectProperty, Question, QuestionMatrixModel, SurveyModel } from \"survey-core\";\nimport { PropertyGridEditorCollection, IPropertyEditorSetup, PropertyGridEditor } from \"./index\";\nimport { CellsEditor } from \"./cells-survey\";\nimport {\n DefaultValueEditor,\n DefaultMatrixRowValueEditor,\n DefaultPanelDynamicPanelValueEditor,\n TriggerValueEditor\n} from \"./values-survey\";\nimport { ISurveyCreatorOptions } from \"../creator-settings\";\nimport { SurveyHelper } from \"../survey-helper\";\n\nexport abstract class PropertyGridValueEditorBase extends PropertyGridEditor {\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n return {\n type: \"linkvalue\",\n showValueInLink: false,\n titleLocation: \"hidden\"\n };\n }\n public onCreated = (obj: Base, question: Question, prop: JsonObjectProperty, options: ISurveyCreatorOptions) => {\n (<any>question).linkClickCallback = () => {\n this.showModalPropertyEditor(this, prop, question, options, () => (<any>question).isSelected = false);\n (<any>question).isSelected = true;\n };\n (<any>question).clearClickCallback = () => {\n this.clearPropertyValue(\n (<any>question).obj,\n prop,\n question,\n null /*this.options*/\n );\n };\n };\n\n public clearPropertyValue(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): void {\n obj[prop.name] = undefined;\n }\n protected isValueEmpty(val: any): boolean {\n return Helpers.isValueEmpty(val);\n }\n\n public isSupportGrouping(): boolean {\n return true;\n }\n}\n\nexport class PropertyGridCellsEditor extends PropertyGridValueEditorBase {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"cells\";\n }\n public createPropertyEditorSetup(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): IPropertyEditorSetup {\n return new CellsEditor(<QuestionMatrixModel>obj, options);\n }\n public clearPropertyValue(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): void {\n (<QuestionMatrixModel>obj).cells.setJson(null);\n }\n protected isValueEmpty(val: any): boolean {\n if (!val) return true;\n return Helpers.isValueEmpty(val.values);\n }\n}\n\nexport class PropertyGridValueEditor extends PropertyGridValueEditorBase {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"value\";\n }\n public createPropertyEditorSetup(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): IPropertyEditorSetup {\n return new DefaultValueEditor(<Question>obj, prop.name, options);\n }\n}\n\nexport class PropertyGridRowValueEditor extends PropertyGridValueEditorBase {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"rowvalue\";\n }\n public createPropertyEditorSetup(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): IPropertyEditorSetup {\n return new DefaultMatrixRowValueEditor(<Question>obj, prop.name, options);\n }\n}\nexport class PropertyGridPanelValueEditor extends PropertyGridValueEditorBase {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"panelvalue\";\n }\n public createPropertyEditorSetup(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): IPropertyEditorSetup {\n return new DefaultPanelDynamicPanelValueEditor(\n <Question>obj,\n prop.name,\n options\n );\n }\n}\n\nexport class PropertyGridTriggerValueEditor extends PropertyGridValueEditorBase {\n public fit(prop: JsonObjectProperty): boolean {\n return prop.type == \"triggervalue\";\n }\n public createPropertyEditorSetup(\n obj: Base,\n prop: JsonObjectProperty,\n question: Question,\n options: ISurveyCreatorOptions\n ): IPropertyEditorSetup {\n const trigger = (<any>question).obj;\n const setQuestion = this.getSetToNameQuestion(trigger);\n return new TriggerValueEditor(setQuestion, trigger, prop.name, options);\n }\n protected getSetToNameQuestion(obj: Base): Question {\n let survey = <SurveyModel>obj.getSurvey();\n if (!survey) {\n survey = obj[\"owner\"];\n }\n if (!obj[\"setToName\"] || !survey) return null;\n return <Question>survey.getQuestionByValueName(\n obj[\"setToName\"]\n );\n }\n}\nexport class PropertyGridTriggerValueInLogicEditor extends PropertyGridTriggerValueEditor {\n public fit(prop: JsonObjectProperty, context?: string): boolean {\n return context === \"logic\" && prop.type == \"triggervalue\";\n }\n public getJSON(\n obj: Base,\n prop: JsonObjectProperty,\n options: ISurveyCreatorOptions\n ): any {\n const setQuestion = this.getSetToNameQuestion(obj);\n if (!setQuestion)\n return {\n type: \"linkvalue\"\n };\n const json: any = setQuestion.toJSON();\n json.type = setQuestion.getType();\n SurveyHelper.updateQuestionJson(json);\n return json;\n }\n}\n\nPropertyGridEditorCollection.register(new PropertyGridCellsEditor());\nPropertyGridEditorCollection.register(new PropertyGridValueEditor());\nPropertyGridEditorCollection.register(new PropertyGridRowValueEditor());\nPropertyGridEditorCollection.register(new PropertyGridPanelValueEditor());\nPropertyGridEditorCollection.register(new PropertyGridTriggerValueEditor());\nPropertyGridEditorCollection.register(new PropertyGridTriggerValueInLogicEditor());\n","export interface ISurveyQuestionEditorDefinition {\n title?: string;\n properties?: Array<string | IPropertyEditorInfo>;\n tabs?: Array<IPropertyTabInfo>;\n}\nexport interface IPropertyEditorInfo {\n name: string;\n title?: string;\n tab?: string;\n placeholder?: string;\n}\n\nexport interface IPropertyTabInfo {\n name: string;\n index?: number;\n title?: string;\n visible?: boolean;\n}\nexport class SurveyQuestionEditorDefinition {\n public static definition: { [key: string]: ISurveyQuestionEditorDefinition } = {\n question: {\n properties: [\n \"name\",\n \"title\",\n \"description\",\n \"visible\",\n \"isRequired\",\n \"readOnly\",\n \"showCommentArea\",\n \"commentText\",\n \"commentPlaceholder\",\n { name: \"visibleIf\", tab: \"logic\" },\n { name: \"enableIf\", tab: \"logic\" },\n { name: \"requiredIf\", tab: \"logic\" },\n { name: \"bindings\", tab: \"logic\" },\n { name: \"defaultValueExpression\", tab: \"logic\" },\n { name: \"page\", tab: \"layout\" },\n { name: \"startWithNewLine\", tab: \"layout\" },\n { name: \"hideNumber\", tab: \"layout\" },\n { name: \"state\", tab: \"layout\" },\n { name: \"titleLocation\", tab: \"layout\" },\n { name: \"descriptionLocation\", tab: \"layout\" },\n { name: \"indent\", tab: \"layout\" },\n { name: \"width\", tab: \"layout\" },\n { name: \"minWidth\", tab: \"layout\" },\n { name: \"maxWidth\", tab: \"layout\" },\n { name: \"valueName\", tab: \"data\" },\n { name: \"defaultValue\", tab: \"data\" },\n { name: \"correctAnswer\", tab: \"data\" },\n { name: \"useDisplayValuesInDynamicTexts\", tab: \"data\" },\n { name: \"clearIfInvisible\", tab: \"data\" },\n { name: \"requiredErrorText\", tab: \"validation\" },\n { name: \"validators\", tab: \"validation\" }\n ],\n tabs: [\n { name: \"logic\", index: 100 },\n { name: \"layout\", index: 200 },\n { name: \"data\", index: 300 },\n { name: \"validation\", index: 400 }\n ]\n },\n comment: {\n properties: [\n { name: \"rows\", tab: \"layout\" },\n { name: \"cols\", tab: \"layout\" },\n \"placeholder\",\n { name: \"maxLength\", tab: \"validation\" },\n { name: \"textUpdateMode\", tab: \"data\" },\n { name: \"autoGrow\", tab: \"layout\" },\n ]\n },\n file: {\n properties: [\n \"allowMultiple\",\n \"allowImagesPreview\",\n \"acceptedTypes\",\n { name: \"showPreview\" },\n { name: \"storeDataAsText\" },\n \"maxSize\",\n \"imageHeight\",\n \"imageWidth\",\n \"waitForUpload\",\n \"needConfirmRemoveFile\"\n ]\n },\n html: {\n properties: [\"html\"]\n },\n matrixdropdownbase: {\n properties: [\n \"cellType\",\n \"optionsCaption\",\n \"detailPanelMode\",\n \"detailPanelShowOnAdding\",\n { name: \"showHeader\", tab: \"layout\" },\n { name: \"showColumnHeader\", tab: \"layout\" },\n { name: \"verticalAlign\", tab: \"layout\" },\n { name: \"alternateRows\", tab: \"layout\" },\n { name: \"columnsVisibleIf\", tab: \"logic\" },\n { name: \"columnLayout\", tab: \"layout\" },\n { name: \"horizontalScroll\", tab: \"layout\" },\n { name: \"columnColCount\", tab: \"layout\" },\n { name: \"columnMinWidth\", tab: \"layout\" }\n ],\n tabs: [\n { name: \"columns\", index: 10 },\n { name: \"rows\", index: 11 },\n { name: \"choices\", index: 12 }\n ]\n },\n matrixdynamic: {\n properties: [\n \"allowAddRows\",\n \"allowRemoveRows\",\n \"allowRowsDragAndDrop\",\n \"rowCount\",\n \"minRowCount\",\n \"maxRowCount\",\n \"addRowLocation\",\n \"addRowText\",\n \"removeRowText\",\n \"confirmDelete\",\n \"confirmDeleteText\",\n \"placeholder\",\n { name: \"hideColumnsIfEmpty\", tab: \"columns\" },\n { name: \"emptyRowsText\", tab: \"columns\" },\n { name: \"defaultRowValue\", tab: \"data\" },\n { name: \"defaultValueFromLastRow\", tab: \"data\" },\n { name: \"keyName\", tab: \"validation\" },\n { name: \"keyDuplicationError\", tab: \"validation\" }\n ]\n },\n matrixdropdown: {\n properties: [\n \"totalText\",\n \"placeholder\",\n { name: \"hideIfRowsEmpty\", tab: \"rows\" },\n { name: \"rowsVisibleIf\", tab: \"logic\" },\n { name: \"rowTitleWidth\", tab: \"layout\" },\n { name: \"keyDuplicationError\", tab: \"validation\" }\n ]\n },\n matrix: {\n properties: [\n { name: \"isAllRowRequired\", tab: \"validation\" },\n { name: \"showHeader\", tab: \"layout\" },\n { name: \"showColumnHeader\", tab: \"layout\" },\n { name: \"verticalAlign\", tab: \"layout\" },\n { name: \"alternateRows\", tab: \"layout\" },\n { name: \"rowsOrder\", tab: \"rows\" },\n { name: \"hideIfRowsEmpty\", tab: \"rows\" },\n { name: \"columnsVisibleIf\", tab: \"logic\" },\n { name: \"rowsVisibleIf\", tab: \"logic\" },\n { name: \"columnMinWidth\", tab: \"layout\" },\n { name: \"rowTitleWidth\", tab: \"layout\" }\n ],\n tabs: [\n { name: \"columns\", index: 10 },\n { name: \"rows\", index: 11 },\n { name: \"cells\", index: 500 }\n ]\n },\n multipletext: {\n properties: [\n { name: \"colCount\", tab: \"layout\" },\n { name: \"itemSize\", tab: \"layout\" }\n ],\n tabs: [{ name: \"items\", index: 10 }]\n },\n rating: {\n properties: [\n { name: \"displayMode\", tab: \"layout\" },\n { name: \"rateMin\", tab: \"rateValues\" },\n { name: \"rateMax\", tab: \"rateValues\" },\n { name: \"rateStep\", tab: \"rateValues\" },\n { name: \"minRateDescription\", tab: \"rateValues\" },\n { name: \"maxRateDescription\", tab: \"rateValues\" },\n { name: \"displayRateDescriptionsAsExtremeItems\", tab: \"rateValues\" },\n ],\n tabs: [{ name: \"rateValues\", index: 10 }]\n },\n selectbase: {\n properties: [\n { name: \"choicesFromQuestion\", tab: \"choices\" },\n { name: \"choicesFromQuestionMode\", tab: \"choices\" },\n { name: \"choicesOrder\", tab: \"choices\" },\n { name: \"colCount\", tab: \"layout\" },\n { name: \"showOtherItem\", tab: \"choices\" },\n { name: \"otherText\", tab: \"choices\" },\n { name: \"otherPlaceholder\", tab: \"choices\" },\n { name: \"showNoneItem\", tab: \"choices\" },\n { name: \"noneText\", tab: \"choices\" },\n { name: \"hideIfChoicesEmpty\", tab: \"logic\" },\n { name: \"choicesVisibleIf\", tab: \"logic\" },\n { name: \"choicesEnableIf\", tab: \"logic\" },\n { name: \"otherErrorText\", tab: \"validation\" },\n { name: \"separateSpecialChoices\", tab: \"choices\" },\n ],\n tabs: [\n { name: \"choices\", index: 10 },\n { name: \"choicesByUrl\", index: 11 }\n ]\n },\n checkbox: {\n properties: [\n { name: \"showSelectAllItem\", tab: \"choices\" },\n { name: \"selectAllText\", tab: \"choices\" },\n { name: \"maxSelectedChoices\", tab: \"choices\" },\n { name: \"separateSpecialChoices\", tab: \"choices\" },\n ]\n },\n radiogroup: {\n properties: [\n { name: \"showClearButton\", tab: \"choices\" },\n { name: \"separateSpecialChoices\", tab: \"choices\" },\n ]\n },\n dropdown: {\n properties: [\n \"placeholder\",\n \"autocomplete\",\n { name: \"choicesMin\", tab: \"choices\" },\n { name: \"choicesMax\", tab: \"choices\" },\n { name: \"choicesStep\", tab: \"choices\" },\n { name: \"allowClear\", tab: \"choices\" }\n ]\n },\n tagbox: {\n properties: [\n \"closeOnSelect\",\n \"placeholder\",\n { name: \"searchEnabled\", tab: \"choices\" },\n { name: \"hideSelectedItems\", tab: \"choices\" },\n { name: \"allowClear\", tab: \"choices\" }\n ]\n },\n imagepicker: {\n properties: [\n \"contentMode\",\n \"imageFit\",\n \"isResponsive\",\n \"minImageWidth\",\n \"maxImageWidth\",\n \"minImageHeight\",\n \"maxImageHeight\",\n { name: \"imageHeight\", placeholder: \"auto\" },\n { name: \"imageWidth\", placeholder: \"auto\" },\n \"multiSelect\",\n \"showLabel\",\n ]\n },\n image: {\n properties: [\n \"imageLink\",\n \"contentMode\",\n \"imageFit\",\n { name: \"imageHeight\", placeholder: \"auto\" },\n { name: \"imageWidth\", placeholder: \"auto\" },\n \"text\"\n ]\n },\n \"itemvalue[]@choices\": {\n properties: [{ name: \"visibleIf\" }, { name: \"enableIf\" }],\n tabs: [{ name: \"general\" }]\n },\n \"itemvalue[]@rows\": {\n properties: [{ name: \"visibleIf\" }, { name: \"enableIf\" }],\n tabs: [{ name: \"general\" }]\n },\n \"itemvalue[]@columns\": {\n properties: [{ name: \"visibleIf\" }, { name: \"enableIf\" }],\n tabs: [{ name: \"general\" }]\n },\n text: {\n properties: [\n \"inputType\",\n \"min\",\n \"max\",\n \"step\",\n \"placeholder\",\n \"autocomplete\",\n \"dataList\",\n { name: \"minValueExpression\", tab: \"logic\" },\n { name: \"maxValueExpression\", tab: \"logic\" },\n { name: \"size\", tab: \"layout\" },\n { name: \"maxLength\", tab: \"validation\" },\n { name: \"minErrorText\", tab: \"validation\" },\n { name: \"maxErrorText\", tab: \"validation\" },\n { name: \"textUpdateMode\", tab: \"data\" }\n ]\n },\n boolean: {\n properties: [\n \"label\",\n \"labelTrue\",\n \"labelFalse\",\n \"showTitle\",\n { name: \"valueTrue\", tab: \"data\" },\n { name: \"valueFalse\", tab: \"data\" }\n ]\n },\n expression: {\n properties: [\n \"expression\",\n \"currency\",\n \"displayStyle\",\n \"format\",\n \"maximumFractionDigits\",\n \"minimumFractionDigits\",\n \"useGrouping\"\n ]\n },\n matrixdropdowncolumn: {\n properties: [\"name\", \"title\"]\n },\n \"matrixdropdowncolumn@default\": {\n properties: [\n \"cellType\",\n \"name\",\n \"title\",\n \"isRequired\",\n \"readOnly\",\n \"isUnique\",\n \"showInMultipleColumns\",\n \"width\",\n \"minWidth\",\n { name: \"visibleIf\", tab: \"logic\" },\n { name: \"enableIf\", tab: \"logic\" },\n { name: \"requiredIf\", tab: \"logic\" },\n { name: \"defaultValueExpression\", tab: \"logic\" },\n { name: \"totalType\", tab: \"totals\" },\n { name: \"totalDisplayStyle\", tab: \"totals\" },\n { name: \"totalCurrency\", tab: \"totals\" },\n { name: \"totalFormat\", tab: \"totals\" },\n { name: \"totalExpression\", tab: \"totals\" }\n ],\n tabs: [\n { name: \"general\", index: 5 },\n { name: \"logic\", index: 20 },\n { name: \"totals\", index: 40 }\n ]\n },\n \"matrixdropdowncolumn@checkbox\": {\n properties: [\n { name: \"showOtherItem\", tab: \"choices\" },\n { name: \"otherText\", tab: \"choices\" },\n { name: \"choicesOrder\", tab: \"choices\" },\n { name: \"colCount\", tab: \"choices\" },\n { name: \"showSelectAllItem\", tab: \"choices\" },\n { name: \"showNoneItem\", tab: \"choices\" },\n { name: \"noneText\", tab: \"choices\" },\n { name: \"maxSelectedChoices\", tab: \"choices\" },\n { name: \"selectAllText\", tab: \"choices\" },\n { name: \"choicesVisibleIf\", tab: \"logic\" },\n { name: \"choicesEnableIf\", tab: \"logic\" },\n ],\n tabs: [\n { name: \"choices\", index: 10 },\n { name: \"choicesByUrl\", index: 11 }\n ]\n },\n \"matrixdropdowncolumn@radiogroup\": {\n properties: [\n { name: \"showOtherItem\", tab: \"choices\" },\n { name: \"otherText\", tab: \"choices\" },\n { name: \"choicesOrder\", tab: \"choices\" },\n { name: \"colCount\", tab: \"choices\" },\n { name: \"showNoneItem\", tab: \"choices\" },\n { name: \"noneText\", tab: \"choices\" },\n { name: \"choicesVisibleIf\", tab: \"logic\" },\n { name: \"choicesEnableIf\", tab: \"logic\" },\n ],\n tabs: [\n { name: \"choices\", index: 10 },\n { name: \"choicesByUrl\", index: 11 }\n ]\n },\n \"matrixdropdowncolumn@dropdown\": {\n properties: [\n { name: \"showOtherItem\", tab: \"choices\" },\n { name: \"otherText\", tab: \"choices\" },\n { name: \"choicesOrder\", tab: \"choices\" },\n { name: \"optionsCaption\", tab: \"choices\" },\n { name: \"showNoneItem\", tab: \"choices\" },\n { name: \"noneText\", tab: \"choices\" },\n { name: \"choicesVisibleIf\", tab: \"logic\" },\n { name: \"choicesEnableIf\", tab: \"logic\" },\n ],\n tabs: [\n { name: \"choices\", index: 10 },\n { name: \"choicesByUrl\", index: 11 }\n ]\n },\n \"matrixdropdowncolumn@text\": {\n properties: [\n \"inputType\",\n \"min\",\n \"max\",\n \"step\",\n \"placeholder\",\n \"dataList\",\n \"maxLength\"\n ],\n tabs: [{ name: \"validators\", index: 10 }]\n },\n \"matrixdropdowncolumn@comment\": {\n properties: [\"rows\", \"placeholder\", \"maxLength\"],\n tabs: [{ name: \"validators\", index: 10 }]\n },\n \"matrixdropdowncolumn@boolean\": {\n properties: [\n \"defaultValue\",\n \"labelTrue\",\n \"labelFalse\",\n \"valueTrue\",\n \"valueFalse\"\n ]\n },\n \"matrixdropdowncolumn@expression\": {\n properties: [\"displayStyle\", \"currency\"],\n tabs: [{ name: \"expression\", index: 10 }]\n },\n \"matrixdropdowncolumn@rating\": {\n properties: [\n \"rateValues\",\n { name: \"rateMin\", tab: \"rateValues\" },\n { name: \"rateMax\", tab: \"rateValues\" },\n { name: \"rateStep\", tab: \"rateValues\" },\n { name: \"minRateDescription\", tab: \"rateValues\" },\n { name: \"maxRateDescription\", tab: \"rateValues\" }\n ],\n tabs: [{ name: \"rateValues\", index: 5 }]\n },\n multipletextitem: {\n properties: [\n \"inputType\",\n \"name\",\n \"title\",\n \"isRequired\",\n \"maxLength\",\n \"size\",\n \"placeholder\",\n \"requiredErrorText\",\n \"validators\"\n ]\n },\n \"multipletext@items\": {\n properties: [\"name\", \"title\"]\n },\n calculatedvalue: {\n properties: [\"name\", \"expression\", \"includeIntoResult\"]\n },\n \"calculatedvalue@items\": {\n properties: [\"name\", \"expression\"]\n },\n paneldynamic: {\n properties: [\n \"renderMode\",\n \"panelCount\",\n \"minPanelCount\",\n \"maxPanelCount\",\n \"panelsState\",\n { name: \"allowAddPanel\" },\n { name: \"allowRemovePanel\" },\n \"panelAddText\",\n \"panelRemoveText\",\n \"templateTitle\",\n \"templateDescription\",\n \"noEntriesText\",\n \"confirmDelete\",\n \"confirmDeleteText\",\n \"panelPrevText\",\n \"panelNextText\",\n \"showQuestionNumbers\",\n \"showRangeInProgress\",\n { name: \"defaultPanelValue\", tab: \"data\" },\n { name: \"defaultValueFromLastPanel\", tab: \"data\" },\n { name: \"templateTitleLocation\", tab: \"layout\" },\n { name: \"panelRemoveButtonLocation\", tab: \"layout\" },\n { name: \"keyName\", tab: \"validation\" },\n { name: \"keyDuplicationError\", tab: \"validation\" }\n ]\n },\n panelbase: {\n properties: [\n \"name\",\n \"title\",\n \"description\",\n \"visible\",\n \"readOnly\",\n { name: \"visibleIf\", tab: \"logic\" },\n { name: \"enableIf\", tab: \"logic\" },\n { name: \"requiredIf\", tab: \"logic\" },\n { name: \"questionTitleLocation\", tab: \"layout\" }\n ],\n tabs: [\n { name: \"logic\", index: 100 },\n { name: \"layout\", index: 200 },\n { name: \"data\", index: 300 },\n { name: \"validation\", index: 400 }\n ]\n },\n panel: {\n properties: [\n \"isRequired\",\n { name: \"requiredErrorText\", tab: \"validation\" },\n { name: \"page\", tab: \"layout\" },\n { name: \"startWithNewLine\", tab: \"layout\" },\n { name: \"state\", tab: \"layout\" },\n { name: \"questionsOrder\", tab: \"layout\" },\n { name: \"indent\", tab: \"layout\" },\n { name: \"innerIndent\", tab: \"layout\" },\n { name: \"width\", tab: \"layout\" },\n { name: \"showNumber\", tab: \"numbering\" },\n { name: \"showQuestionNumbers\", tab: \"numbering\" },\n { name: \"questionStartIndex\", tab: \"numbering\" },\n { name: \"minWidth\", tab: \"layout\" },\n { name: \"maxWidth\", tab: \"layout\" },\n ],\n tabs: [{ name: \"numbering\", index: 350 }]\n },\n page: {\n properties: [\n \"navigationTitle\",\n \"navigationDescription\",\n \"maxTimeToFinish\",\n { name: \"questionsOrder\", tab: \"layout\" },\n { name: \"navigationButtonsVisibility\", tab: \"layout\" }\n ]\n },\n survey: {\n properties: [\n \"title\",\n \"description\",\n \"showTitle\",\n \"locale\",\n \"mode\",\n \"cookieName\",\n \"widthMode\",\n \"width\",\n\n { name: \"showPreviewBeforeComplete\", tab: \"navigation\" },\n { name: \"pagePrevText\", tab: \"navigation\" },\n { name: \"pageNextText\", tab: \"navigation\" },\n { name: \"completeText\", tab: \"navigation\" },\n { name: \"previewText\", tab: \"navigation\" },\n { name: \"editText\", tab: \"navigation\" },\n { name: \"startSurveyText\", tab: \"navigation\" },\n {\n name: \"showNavigationButtons\",\n tab: \"navigation\"\n },\n { name: \"showPrevButton\", tab: \"navigation\" },\n { name: \"firstPageIsStarted\", tab: \"navigation\" },\n { name: \"goNextPageAutomatic\", tab: \"navigation\" },\n { name: \"showProgressBar\", tab: \"navigation\" },\n { name: \"progressBarType\", tab: \"navigation\" },\n { name: \"questionsOnPageMode\", tab: \"navigation\" },\n { name: \"showTOC\", tab: \"navigation\" },\n { name: \"tocLocation\", tab: \"navigation\" },\n\n { name: \"questionTitleLocation\", tab: \"question\" },\n { name: \"questionDescriptionLocation\", tab: \"question\" },\n { name: \"showQuestionNumbers\", tab: \"question\" },\n { name: \"questionTitlePattern\", tab: \"question\" },\n { name: \"requiredText\", tab: \"question\" },\n { name: \"questionStartIndex\", tab: \"question\" },\n { name: \"questionErrorLocation\", tab: \"question\" },\n {\n name: \"focusFirstQuestionAutomatic\",\n tab: \"question\"\n },\n { name: \"questionsOrder\", tab: \"question\" },\n { name: \"maxTextLength\", tab: \"question\" },\n { name: \"maxOthersLength\", tab: \"question\" },\n { name: \"autoGrowComment\", tab: \"question\" },\n\n { name: \"showPageTitles\", tab: \"pages\" },\n { name: \"showPageNumbers\", tab: \"pages\" },\n\n { name: \"calculatedValues\", tab: \"logic\" },\n { name: \"triggers\", tab: \"logic\" },\n\n { name: \"clearInvisibleValues\", tab: \"data\" },\n { name: \"textUpdateMode\", tab: \"data\" },\n { name: \"sendResultOnPageNext\", tab: \"data\" },\n { name: \"storeOthersAsComment\", tab: \"data\" },\n\n { name: \"focusOnFirstError\", tab: \"validation\" },\n { name: \"checkErrorsMode\", tab: \"validation\" },\n\n { name: \"navigateToUrl\", tab: \"showOnCompleted\" },\n { name: \"showCompletedPage\", tab: \"showOnCompleted\" },\n { name: \"completedHtml\", tab: \"showOnCompleted\" },\n { name: \"navigateToUrlOnCondition\", tab: \"showOnCompleted\" },\n { name: \"completedHtmlOnCondition\", tab: \"showOnCompleted\" },\n { name: \"loadingHtml\", tab: \"showOnCompleted\" },\n { name: \"completedBeforeHtml\", tab: \"showOnCompleted\" },\n\n { name: \"maxTimeToFinish\", tab: \"timer\" },\n { name: \"maxTimeToFinishPage\", tab: \"timer\" },\n { name: \"showTimerPanel\", tab: \"timer\" },\n { name: \"showTimerPanelMode\", tab: \"timer\" },\n\n { name: \"logo\", tab: \"logo\" },\n { name: \"logoPosition\", tab: \"logo\" },\n { name: \"logoWidth\", tab: \"logo\" },\n { name: \"logoHeight\", tab: \"logo\" },\n { name: \"logoFit\", tab: \"logo\" }\n ],\n tabs: [\n { name: \"logo\", index: 50 },\n { name: \"navigation\", index: 100 },\n { name: \"question\", index: 200 },\n { name: \"pages\", index: 250 },\n { name: \"logic\", index: 300 },\n { name: \"data\", index: 400 },\n { name: \"validation\", index: 500 },\n { name: \"showOnCompleted\", index: 600 },\n { name: \"timer\", index: 700 }\n ]\n },\n \"page@survey\": {\n properties: [\"name\", \"title\"]\n }\n };\n}\n","import {\n SurveyQuestionEditorDefinition,\n ISurveyQuestionEditorDefinition,\n} from \"./definition\";\nimport * as Survey from \"survey-core\";\nimport { SurveyHelper } from \"../survey-helper\";\nimport { ISurveyCreatorOptions, settings } from \"../creator-settings\";\n\nexport class SurveyQuestionEditorPropertyDefinition {\n public property: Survey.JsonObjectProperty;\n public title: string;\n public category: string;\n public createdFromTabName: boolean;\n public onSameLine: boolean;\n public get name(): string {\n return !!this.property ? this.property.name : \"\";\n }\n}\n\nexport class SurveyQuestionEditorTabDefinition {\n public name: string;\n public title: string;\n public visible: boolean = true;\n public index: number = 0;\n public properties: Array<SurveyQuestionEditorPropertyDefinition> = [];\n}\n\nexport class SurveyQuestionProperties {\n private showModeValue: string;\n private properties: Array<Survey.JsonObjectProperty>;\n private propertiesHash: any;\n private tabs: Array<SurveyQuestionEditorTabDefinition> = [];\n constructor(\n public obj: any,\n public options: ISurveyCreatorOptions = null,\n className: string = null,\n showMode: string = null,\n private parentObj: any = null,\n private parentProperty: Survey.JsonObjectProperty = null\n ) {\n this.showModeValue = showMode;\n this.properties = Survey.Serializer.getPropertiesByObj(this.obj);\n this.fillPropertiesHash();\n this.buildTabs(className);\n }\n public getProperty(propertyName: string): Survey.JsonObjectProperty {\n var res = this.propertiesHash[propertyName];\n return !!res && res.visible ? res.property : null;\n }\n public get showMode(): string {\n return !!this.showModeValue ? this.showModeValue : \"form\";\n }\n public get isEmpty(): boolean {\n for (var i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i].visible && this.tabs[i].properties.length > 0)\n return false;\n }\n return true;\n }\n private fillPropertiesHash() {\n this.propertiesHash = {};\n for (var i = 0; i < this.properties.length; i++) {\n var prop = this.properties[i];\n this.propertiesHash[prop.name] = {\n property: prop,\n visible: SurveyHelper.isPropertyVisible(\n this.obj,\n prop,\n this.options,\n this.showMode,\n this.parentObj,\n this.parentProperty\n ),\n };\n }\n }\n private isJSONPropertyVisible(property: Survey.JsonObjectProperty): boolean {\n var res = this.propertiesHash[property.name];\n return !!res && res.visible;\n }\n public getTabByName(tabName: string): SurveyQuestionEditorTabDefinition {\n for (var i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i].name == tabName) return this.tabs[i];\n }\n return null;\n }\n public getTabs(): Array<SurveyQuestionEditorTabDefinition> {\n return this.tabs;\n }\n public getProperties(\n tab: SurveyQuestionEditorTabDefinition\n ): Array<Survey.JsonObjectProperty> {\n var res = [];\n for (var i = 0; i < tab.properties.length; i++) {\n res.push(tab.properties[i].property);\n }\n return res;\n }\n private buildTabs(className: string) {\n if (!className) {\n className = this.obj.getType();\n }\n var definitions = this.getAllDefinitionsByClass(className);\n var addedProperties = [];\n for (var i = definitions.length - 1; i >= 0; i--) {\n var defItem = definitions[i];\n for (var j = !!defItem.tabs ? defItem.tabs.length - 1 : -1; j >= 0; j--) {\n if (addedProperties.indexOf(defItem.tabs[j].name) > -1) continue;\n if (this.addPropertyIntoTab(defItem.tabs[j], true)) {\n addedProperties.push(defItem.tabs[j].name);\n }\n }\n for (\n var j = !!defItem.properties ? defItem.properties.length - 1 : -1;\n j >= 0;\n j--\n ) {\n var propertyName =\n defItem.properties[j][\"name\"] || defItem.properties[j];\n if (addedProperties.indexOf(propertyName) === -1) {\n addedProperties.push(propertyName);\n this.addPropertyIntoTab(defItem.properties[j]);\n }\n }\n }\n for (var i = this.tabs.length - 1; i >= 0; i--) {\n this.movePropertiesToNextProperties(this.tabs[i].properties);\n if (!this.tabs[i].visible) {\n this.tabs.splice(i, 1);\n } else {\n this.sortProperties(this.tabs[i].properties);\n }\n }\n this.tabs.sort(function (a, b) {\n return a.index < b.index ? -1 : a.index > b.index ? 1 : 0;\n });\n }\n private addPropertyIntoTab(\n defProperty: any,\n isTab: boolean = false\n ): boolean {\n if (isTab) {\n let tab = this.getTabOrCreate(defProperty.name);\n if (defProperty.index > 0) {\n tab.index = defProperty.index;\n }\n if (defProperty.visible === false) {\n tab.visible = false;\n }\n if (!!defProperty.title) {\n tab.title = defProperty.title;\n }\n }\n var isString = typeof defProperty == \"string\";\n var name = !isString ? defProperty.name : defProperty;\n var propRes = this.propertiesHash[name];\n if (!propRes) return false;\n if (!isString && defProperty.visible === false) return false;\n if (\n !propRes.visible &&\n (isString || (!isString && defProperty.visible !== true))\n )\n return false;\n var tabName = isTab ? defProperty.name : settings.propertyGrid.generalTabName;\n if (!isTab && !isString && !!defProperty.tab) {\n tabName = defProperty.tab;\n }\n var propertyDefinition = new SurveyQuestionEditorPropertyDefinition();\n propertyDefinition.property = propRes.property;\n propertyDefinition.category =\n !isString && !!defProperty.category ? defProperty.category : \"\";\n propertyDefinition.title =\n !isString && !!defProperty.title ? defProperty.title : \"\";\n propertyDefinition.onSameLine = this.isPropertyOnSameLine(propRes.property.nextToProperty);\n propertyDefinition.createdFromTabName = isTab;\n let tab = this.getTabOrCreate(tabName);\n tab.properties.unshift(propertyDefinition);\n return true;\n }\n private movePropertiesToNextProperties(\n properties: Array<SurveyQuestionEditorPropertyDefinition>\n ) {\n var props = [].concat(properties);\n for (var i = 0; i < props.length; i++) {\n const nextToProperty = this.getNextToNameProperty(props[i].property);\n var newTab = this.getTabByPropertyName(nextToProperty);\n if (!!newTab) {\n var prop = this.getPropertyByNameInTab(\n newTab,\n nextToProperty\n );\n var index = newTab.properties.indexOf(prop);\n newTab.properties.splice(index + 1, 0, props[i]);\n properties.splice(properties.indexOf(props[i]), 1);\n }\n }\n }\n private getTabByPropertyName(\n propName: string\n ): SurveyQuestionEditorTabDefinition {\n if (!propName) return null;\n if(this.isPropertyOnSameLine(propName)) propName = propName.substring(1);\n for (var i = 0; i < this.tabs.length; i++) {\n if (!!this.getPropertyByNameInTab(this.tabs[i], propName))\n return this.tabs[i];\n }\n return null;\n }\n private getNextToNameProperty(property: Survey.JsonObjectProperty): string {\n if(!property.nextToProperty) return \"\";\n if(this.isPropertyOnSameLine(property.nextToProperty)) return property.nextToProperty.substring(1);\n return property.nextToProperty;\n }\n private isPropertyOnSameLine(nextToProperty: string): boolean {\n return !!nextToProperty && nextToProperty[0] === \"*\";\n }\n private getPropertyByNameInTab(\n tab: SurveyQuestionEditorTabDefinition,\n propName: string\n ): SurveyQuestionEditorPropertyDefinition {\n var props = tab.properties;\n for (var i = 0; i < props.length; i++) {\n if (props[i].name == propName) return props[i];\n }\n return null;\n }\n private getTabOrCreate(tabName: string): SurveyQuestionEditorTabDefinition {\n for (var i = 0; i < this.tabs.length; i++) {\n if (this.tabs[i].name == tabName) return this.tabs[i];\n }\n var res = new SurveyQuestionEditorTabDefinition();\n res.name = tabName;\n if (tabName == settings.propertyGrid.generalTabName) {\n res.index = -1;\n }\n this.tabs.unshift(res);\n return res;\n }\n private setUsedProperties(res: Array<ISurveyQuestionEditorDefinition>, usedProperties: any): void {\n for(let i = 0; i < res.length; i ++) {\n const props = res[i].properties;\n if(!Array.isArray(props)) continue;\n for(let j = 0; j < props.length; j ++) {\n const propName = !!props[j][\"name\"] ? props[j][\"name\"] : props[j];\n usedProperties[propName] = true;\n }\n }\n }\n private getAllDefinitionsByClass(\n className: string\n ): Array<ISurveyQuestionEditorDefinition> {\n var result = [];\n var usedProperties = {};\n if (\n className.indexOf(\"@\") > -1 &&\n SurveyQuestionEditorDefinition.definition[className]\n ) {\n var defaultName =\n className.substring(0, className.indexOf(\"@\") + 1) + \"default\";\n if (\n defaultName != className &&\n !!SurveyQuestionEditorDefinition.definition[defaultName]\n ) {\n result.push(SurveyQuestionEditorDefinition.definition[defaultName]);\n }\n result.push(SurveyQuestionEditorDefinition.definition[className]);\n this.setUsedProperties(result, usedProperties);\n this.addNonTabProperties(result, usedProperties, true);\n return result;\n }\n var curClassName = className;\n var hasNonTabProperties = false;\n while (curClassName) {\n let metaClass = <Survey.JsonMetadataClass>(\n Survey.Serializer.findClass(curClassName)\n );\n if (!metaClass) break;\n let classRes = SurveyQuestionEditorDefinition.definition[metaClass.name];\n if (classRes) {\n if (classRes.properties) {\n var i = 0;\n while (i < classRes.properties.length) {\n var prop = classRes.properties[i];\n var propName = typeof prop == \"string\" ? prop : prop.name;\n var tabName = settings.propertyGrid.generalTabName;\n if (typeof prop !== \"string\" && !!prop.tab) {\n tabName = prop.tab;\n }\n var jsonProp = !!this.propertiesHash[propName]\n ? this.propertiesHash[propName].property\n : null;\n var jsonPropertyCategory = this.getJsonPropertyCategory(jsonProp);\n if (!!jsonPropertyCategory && jsonPropertyCategory !== tabName) {\n classRes.properties.splice(i, 1);\n } else {\n usedProperties[propName] = true;\n i++;\n }\n }\n }\n if (classRes.tabs) {\n for (var i = 0; i < classRes.tabs.length; i++) {\n hasNonTabProperties =\n hasNonTabProperties || classRes.tabs[i].name == \"others\";\n usedProperties[classRes.tabs[i].name] = true;\n }\n }\n result.unshift(classRes);\n }\n curClassName = metaClass.parentName;\n }\n\n if (!hasNonTabProperties) {\n this.addNonTabProperties(result, usedProperties);\n }\n return result;\n }\n private getJsonPropertyCategory(\n jsonProperty: Survey.JsonObjectProperty\n ): string {\n if (!jsonProperty) return null;\n if (!!jsonProperty.category) return jsonProperty.category;\n return null;\n }\n private addNonTabProperties(\n tabs: Array<ISurveyQuestionEditorDefinition>,\n usedProperties: any, isFormMode: boolean = false\n ) {\n let classRes: any = { properties: [], tabs: [] };\n let tabNames = [];\n for (var i = 0; i < this.properties.length; i++) {\n let prop = this.properties[i];\n if (!this.isJSONPropertyVisible(prop) || !!usedProperties[prop.name] ||\n (isFormMode && prop.showMode !== \"form\"))\n continue;\n let propCategory = this.getJsonPropertyCategory(prop);\n let tabName = !!propCategory\n ? propCategory\n : tabs.length == 0\n ? settings.propertyGrid.generalTabName\n : \"others\";\n if (tabNames.indexOf(tabName) < 0 && tabName != settings.propertyGrid.generalTabName) {\n tabNames.push(tabName);\n classRes.tabs.push({\n name: tabName,\n index: tabName == \"others\" ? 1000 : tabNames.length * 10,\n });\n }\n if (prop.categoryIndex > -1 && tabNames.indexOf(tabName) > -1) {\n for (var j = 0; j < classRes.tabs.length; j++) {\n if (classRes.tabs[j].name == tabName) {\n classRes.tabs[j].index = prop.categoryIndex;\n }\n }\n }\n classRes.properties.push({\n name: this.properties[i].name,\n tab: tabName,\n });\n }\n if (classRes.properties.length > 0) {\n tabs.push(classRes);\n }\n }\n private sortProperties(\n properties: Array<SurveyQuestionEditorPropertyDefinition>\n ) {\n if (!Array.isArray(properties)) return;\n var props: Array<SurveyQuestionEditorPropertyDefinition> = [].concat(\n properties\n );\n for (var i = 0; i < props.length; i++) {\n var index = props[i].property.visibleIndex;\n if (props[i].createdFromTabName) {\n index = 0;\n }\n if (index < 0) continue;\n var curIndex = properties.indexOf(props[i]);\n if (curIndex > -1) {\n properties.splice(curIndex, 1);\n }\n if (index < properties.length) {\n properties.splice(index, 0, props[i]);\n } else {\n properties.push(props[i]);\n }\n }\n }\n}\n","import { SurveyElement, QuestionSelectBase, QuestionFactory,\n Serializer, PanelModelBase, Question, Helpers, CustomWidgetCollection } from \"survey-core\";\nimport { QuestionConvertMode, settings } from \"./creator-settings\";\nimport { IQuestionToolboxItem, QuestionToolbox } from \"./toolbox\";\n\nexport class QuestionConverter {\n public static convertInfo = {};\n public static addConvertInfo(className: string, convertToClassName: string) {\n if (!QuestionConverter.convertInfo[className]) {\n QuestionConverter.convertInfo[className] = [];\n }\n QuestionConverter.convertInfo[className].push(convertToClassName);\n }\n public static getConvertToClasses(\n className: string,\n availableTypes: Array<string> = null, includeCurrent: boolean = false\n ): Array<string> {\n var res = settings.questionConvertMode == QuestionConvertMode.AllTypes\n ? getAllQuestionTypes(className, includeCurrent)\n : QuestionConverter.convertInfo[className];\n if (!res) return [];\n if (Array.isArray(availableTypes) && availableTypes.length > 0\n ) {\n const types = [];\n res.forEach(item => types.push(item));\n res = availableTypes\n .filter((item) => types.indexOf(item) >= 0);\n }\n return !!res ? res : [];\n }\n public static convertObject(\n obj: Question,\n convertToClass: string,\n defaultJSON: any = null\n ): Question {\n if (!obj || !obj.parent || convertToClass == obj.getType()) return null;\n let questionDefaultSettings = QuestionToolbox.getQuestionDefaultSettings(convertToClass);\n var newQuestion = QuestionFactory.Instance.createQuestion(convertToClass, obj.name);\n if(!newQuestion) {\n newQuestion = Serializer.createClass(convertToClass, {});\n }\n if (newQuestion instanceof QuestionSelectBase && questionDefaultSettings?.choices) newQuestion.choices = null;\n newQuestion.name = obj.name;\n const json = newQuestion.toJSON();\n const qJson = obj.toJSON();\n for (var key in qJson) {\n json[key] = qJson[key];\n }\n QuestionConverter.updateJSON(json, convertToClass, obj.getType(), defaultJSON);\n newQuestion.fromJSON(json);\n var panel = <PanelModelBase>obj.parent;\n var index = panel.elements.indexOf(obj);\n (<any>panel).isConverting = true;\n panel.removeElement(obj);\n panel.addElement(newQuestion, index);\n delete (<any>panel).isConverting;\n newQuestion.onSurveyLoad();\n return newQuestion;\n }\n private static updateJSON(json: any, convertToClass: string, convertFromClass: string, defaultJSON: any): void {\n QuestionConverter.updateJSONFromQuestionDefaultSettings(json, convertToClass, defaultJSON);\n QuestionConverter.updateJSONForRating(json, convertToClass, defaultJSON);\n QuestionConverter.updateJSONForMatrices(json, convertToClass, convertFromClass);\n QuestionConverter.updateJSONForPanels(json, convertToClass, convertFromClass);\n }\n private static updateJSONFromQuestionDefaultSettings(json: any, convertToClass: string, defaultJSON: any): void {\n const questionDefaultSettings = QuestionToolbox.getQuestionDefaultSettings(convertToClass);\n if(!questionDefaultSettings) return;\n if(convertToClass === \"image\" && !json.imageLink) {\n json.imageLink = questionDefaultSettings.imageLink;\n }\n if(convertToClass === \"imagepicker\" ||\n convertToClass === \"dropdown\" ||\n convertToClass === \"checkbox\" ||\n convertToClass === \"radiogroup\" ||\n convertToClass === \"ranking\"\n ) {\n if(!json.choices) {\n json.choices = questionDefaultSettings.choices;\n }\n } else {\n for(var key in questionDefaultSettings) {\n if(!defaultJSON || !defaultJSON[key]) {\n json[key] = questionDefaultSettings[key];\n }\n }\n }\n }\n private static updateJSONForMatrices(json: any, convertToClass: string, convertFromClass: string): void {\n if(Serializer.isDescendantOf(convertToClass, \"matrix\") &&\n Serializer.isDescendantOf(convertFromClass, \"matrixdropdownbase\") &&\n json.columns) {\n json.columns = json.columns.map(col => col.title ? { value: col.name, text: col.title } : col.name);\n }\n if(Serializer.isDescendantOf(convertToClass, \"matrixdropdownbase\") &&\n Serializer.isDescendantOf(convertFromClass, \"matrix\") &&\n json.columns) {\n json.columns = json.columns.map(col => <any>{ name: col.value || col, title: col.text });\n }\n }\n private static updateJSONForRating(json: any, convertToClass: string, defaultJSON: any): void {\n if(convertToClass === \"rating\" && json.choices) {\n if(!defaultJSON || !defaultJSON.choices ||\n !Helpers.isArraysEqual(defaultJSON.choices, json.choices)) {\n json.rateValues = json.choices;\n }\n }\n if(!!json.rateValues && !Serializer.isDescendantOf(convertToClass, \"matrixdropdownbase\")) {\n json.choices = json.rateValues;\n }\n }\n private static updateJSONForPanels(json: any, convertToClass: string, convertFromClass: string): void {\n if(Serializer.isDescendantOf(convertToClass, \"paneldynamic\") &&\n Serializer.isDescendantOf(convertFromClass, \"panel\") &&\n json.elements) {\n json.templateElements = json.elements;\n delete json.elements;\n }\n if(Serializer.isDescendantOf(convertToClass, \"panel\") &&\n Serializer.isDescendantOf(convertFromClass, \"paneldynamic\") &&\n json.templateElements) {\n json.elements = json.templateElements;\n delete json.templateElements;\n }\n }\n}\nfunction getAllQuestionTypes(className: string, includeCurrent: boolean = false): Array<string> {\n if(className === \"panel\") return includeCurrent ? [\"panel\", \"paneldynamic\"] : [\"paneldynamic\"];\n var classes = Serializer.getChildrenClasses(\"question\", true);\n var res = [];\n for (var i = 0; i < classes.length; i++) {\n if (includeCurrent || classes[i].name !== className) {\n res.push(classes[i].name);\n }\n }\n if(className === \"paneldynamic\") res.push(\"panel\");\n const widgets = CustomWidgetCollection.Instance.widgets;\n for(var i = 0; i < widgets.length; i ++) {\n if (includeCurrent || widgets[i].name !== className) {\n res.push(widgets[i].name);\n }\n }\n return res;\n}\n\nfunction createDefaultQuestionConverterItems() {\n var classes = Serializer.getChildrenClasses(\"selectbase\", true);\n for (var i = 0; i < classes.length; i++) {\n for (var j = 0; j < classes.length; j++) {\n if (i == j) continue;\n QuestionConverter.addConvertInfo(classes[i].name, classes[j].name);\n }\n }\n QuestionConverter.addConvertInfo(\"text\", \"comment\");\n QuestionConverter.addConvertInfo(\"comment\", \"text\");\n}\n\ncreateDefaultQuestionConverterItems();","// extracted by mini-css-extract-plugin","import { Base, SurveyModel, EventBase, property } from \"survey-core\";\nimport { ICreatorSelectionOwner } from \"./selection-owner\";\n\ninterface ISelectionHistoryItem {\n obj: Base;\n propertyName?: string;\n}\n\nexport class SelectionHistory extends Base {\n private items: Array<ISelectionHistoryItem>;\n private isChangingInternally: boolean;\n constructor(public creator: ICreatorSelectionOwner) {\n super();\n this.items = [];\n }\n public get hasPrev(): boolean {\n return this.currentIndex > 0;\n }\n public get hasNext(): boolean {\n var index = this.currentIndex;\n return index > -1 && index < this.items.length - 1;\n }\n public hasInHistory(obj: Base) {\n return this.getIndex(obj) > -1;\n }\n public prev() {\n this.selectElement(this.currentIndex - 1);\n }\n public next() {\n this.selectElement(this.currentIndex + 1);\n }\n public reset() {\n this.items = [];\n if (!!this.creator.selectedElement) {\n this.onObjSelected(this.creator.selectedElement);\n }\n }\n public selectFromAction(obj: Base, propertyName: string) {\n var index = this.currentIndex;\n if (index > -1 && index < this.items.length) {\n this.items[index].propertyName = propertyName;\n }\n this.creator.selectElement(obj);\n }\n public onObjSelected(obj: Base) {\n if (this.isChangingInternally) return;\n var index = this.currentIndex;\n if (index > -1) {\n this.items.splice(index, 1);\n }\n this.items.push({\n obj: obj,\n });\n }\n private get currentIndex(): number {\n return this.getIndex(this.creator.selectedElement);\n }\n private getIndex(obj: Base) {\n if (!obj) return -1;\n this.updateItems();\n for (var i = 0; i < this.items.length; i++) {\n if (this.items[i].obj == obj) return i;\n }\n return -1;\n }\n private selectElement(index: number) {\n if (index < 0 || index >= this.items.length) return;\n this.isChangingInternally = true;\n var item = this.items[index];\n this.creator.selectElement(item.obj, item.propertyName);\n this.isChangingInternally = false;\n }\n private updateItems() {\n for (var i = this.items.length - 1; i >= 0; i--) {\n var obj = this.items[i].obj;\n if (!!obj && (obj.isDisposed || !obj.inSurvey)) {\n this.items.splice(i, 1);\n }\n }\n }\n}\n","import {\n Base,\n Helpers,\n ItemValue,\n JsonObjectProperty,\n PageModel,\n Serializer,\n} from \"survey-core\";\nimport { editorLocalization } from \"./editorLocalization\";\nimport { ISurveyCreatorOptions } from \"./creator-settings\";\nimport { wrapTextByCurlyBraces } from \"./utils/utils\";\n\nexport enum ObjType {\n Unknown,\n Survey,\n Page,\n Panel,\n Question,\n Column\n}\nexport class SurveyHelper {\n public static getNewPageName(objs: Array<any>) {\n return SurveyHelper.getNewName(\n objs,\n editorLocalization.getString(\"ed.newPageName\")\n );\n }\n public static isPageNameAutoGenerated(name: string): boolean {\n return SurveyHelper.isNameAutoGenerated(name, editorLocalization.getString(\"ed.newPageName\"));\n }\n public static getNewQuestionName(objs: Array<any>) {\n return SurveyHelper.getNewName(\n objs,\n editorLocalization.getString(\"ed.newQuestionName\")\n );\n }\n public static getNewPanelName(objs: Array<any>) {\n return SurveyHelper.getNewName(\n objs,\n editorLocalization.getString(\"ed.newPanelName\")\n );\n }\n public static generateNewName(name: string): string {\n var pos = name.length;\n while (pos > 0 && name[pos - 1] >= \"0\" && name[pos - 1] <= \"9\") {\n pos--;\n }\n var base = name.substring(0, pos);\n var num = 0;\n if (pos < name.length) {\n num = parseInt(name.substring(pos));\n }\n num++;\n return base + num;\n }\n public static getNewName(objs: Array<any>, baseName: string): string {\n var hash = {};\n for (var i = 0; i < objs.length; i++) {\n hash[objs[i].name] = true;\n }\n var num = 1;\n while (true) {\n if (!hash[baseName + num.toString()]) break;\n num++;\n }\n return baseName + num.toString();\n }\n public static isNameAutoGenerated(name: string, baseName: string): boolean {\n if(!name || name.length < baseName.length) return false;\n const digits = name.substring(baseName.length);\n return Helpers.isNumber(digits);\n }\n public static getObjectType(obj: any): ObjType {\n if (!obj || !obj[\"getType\"]) return ObjType.Unknown;\n if (obj.getType() == \"page\") return ObjType.Page;\n if (obj.getType() == \"panel\") return ObjType.Panel;\n if (obj.getType() == \"survey\") return ObjType.Survey;\n if (obj.getType() == \"matrixdropdowncolumn\") return ObjType.Column;\n if (obj[\"name\"]) return ObjType.Question;\n return ObjType.Unknown;\n }\n public static getObjectTypeStr(obj: any): string {\n var objType = SurveyHelper.getObjectType(obj);\n if (objType === ObjType.Survey) return \"survey\";\n if (objType === ObjType.Page) return \"page\";\n if (objType === ObjType.Panel) return \"panel\";\n if (objType === ObjType.Question) return \"question\";\n if (objType === ObjType.Column) return \"column\";\n return \"unknown\";\n }\n\n public static getObjectName(obj: any, showObjectTitle = false): string {\n var objType = SurveyHelper.getObjectType(obj);\n if (objType === ObjType.Survey)\n return editorLocalization.getString(\"ed.surveyTypeName\");\n if (showObjectTitle && obj[\"title\"]) return obj[\"title\"];\n if (showObjectTitle && obj[\"text\"]) return obj[\"text\"];\n if (obj[\"name\"]) return obj[\"name\"];\n return \"\";\n }\n public static getElements(\n element: any,\n includeHidden: boolean = false\n ): Array<any> {\n if (!element) return [];\n if (element.getElementsInDesign)\n return element.getElementsInDesign(includeHidden);\n if (element.elements) return element.elements;\n return [];\n }\n public static isPropertyVisible(\n obj: any,\n property: JsonObjectProperty,\n options: ISurveyCreatorOptions = null,\n showMode: string = null,\n parentObj: any = null,\n parentProperty: JsonObjectProperty = null\n ): boolean {\n if (!property || !property.visible) return false;\n if (!!showMode && !!property.showMode && showMode !== property.showMode)\n return false;\n if (\n !!property.isVisible &&\n !!obj.getLayoutType &&\n !(<any>property[\"isVisible\"])(obj.getLayoutType(), null)\n )\n return false;\n var canShow = !!options\n ? (object: any, property: JsonObjectProperty) => {\n return options.onCanShowPropertyCallback(\n object,\n property,\n showMode,\n parentObj,\n parentProperty\n );\n }\n : null;\n if (!!canShow && !canShow(obj, property)) return false;\n return true;\n }\n public static scrollIntoViewIfNeeded(el: HTMLElement) {\n if (!el || !el.scrollIntoView) return;\n var rect = el.getBoundingClientRect();\n var scrollableDiv = SurveyHelper.getScrollableDiv(el);\n if (!scrollableDiv) return;\n var height = scrollableDiv.clientHeight;\n if (rect.top < scrollableDiv.offsetTop) {\n el.scrollIntoView(true);\n } else {\n let offsetTop = height + scrollableDiv.offsetTop;\n if (rect.bottom > offsetTop && rect.height < height) {\n el.scrollIntoView(false);\n }\n }\n }\n public static getScrollableDiv(el: HTMLElement): HTMLElement {\n while (!!el) {\n if (!!el.id && el.id.indexOf(\"scrollableDiv\") > -1) return el;\n if (!el.offsetParent) return null;\n el = <HTMLElement>el.offsetParent;\n }\n return null;\n }\n public static moveItemInArray(\n list: Array<any>,\n obj: any,\n newIndex: number\n ): boolean {\n if (!list || list.length < 2) return false;\n if (newIndex < 0 || newIndex >= list.length) return false;\n var oldIndex = list.indexOf(obj);\n if (oldIndex < 0 || oldIndex == newIndex) return false;\n for (var i = 0; i < list.length; i++) {\n SurveyHelper.disableSelectingObj(list[i]);\n }\n list.splice(oldIndex, 1);\n list.splice(newIndex, 0, obj);\n for (var i = 0; i < list.length; i++) {\n SurveyHelper.enableSelectingObj(list[i]);\n }\n return true;\n }\n public static applyItemValueArray(\n dest: Array<ItemValue>,\n src: Array<ItemValue>\n ) {\n if (!src || src.length == 0) {\n dest.splice(0, dest.length);\n return;\n }\n if (dest.length > src.length) {\n dest.splice(src.length, dest.length - src.length);\n }\n if (dest.length < src.length) {\n var insertedArray = [];\n for (var i = dest.length; i < src.length; i++) {\n insertedArray.push(src[i]);\n }\n dest.splice.apply(dest, [dest.length, 0].concat(insertedArray));\n }\n for (var i = 0; i < dest.length; i++) {\n if (dest[i].value != src[i].value) {\n dest[i].value = src[i].value;\n }\n dest[i].text = src[i].hasText ? src[i].text : \"\";\n }\n }\n public static disableSelectingObj(obj: Base) {\n obj[\"disableSelecting\"] = true;\n }\n public static enableSelectingObj(obj: Base) {\n delete obj[\"disableSelecting\"];\n }\n public static canSelectObj(obj: Base) {\n return !obj || obj[\"disableSelecting\"] !== true;\n }\n public static warnNonSupported(name: string, newPropertyName?: string) {\n let outputText = wrapTextByCurlyBraces(name) + \" is not supported in V2.\";\n if (!!newPropertyName) {\n outputText += \" Use the '\" + newPropertyName + \"' property instead\";\n }\n SurveyHelper.warnText(outputText);\n }\n public static warnText(text: string) {\n // eslint-disable-next-line no-console\n console.warn(text);\n }\n private static deleteConditionProperties(json: any) {\n delete json[\"visible\"];\n delete json[\"visibleIf\"];\n delete json[\"readOnly\"];\n delete json[\"enableIf\"];\n delete json[\"valueName\"];\n delete json[\"choicesVisibleIf\"];\n delete json[\"choicesEnableIf\"];\n delete json[\"width\"];\n delete json[\"minWidth\"];\n delete json[\"maxWidth\"];\n }\n public static updateQuestionJson(questionJson: any) {\n questionJson.storeOthersAsComment = false;\n SurveyHelper.deleteConditionProperties(questionJson);\n if (!!questionJson.choices) {\n for (var i = 0; i < questionJson.choices.length; i++) {\n SurveyHelper.deleteConditionProperties(questionJson.choices[i]);\n }\n }\n }\n public static convertMatrixRowsToText(rows: any): string {\n var result = rows\n .filter((row) => !row.cells[0].hasError)\n .map((row) =>\n row.cells\n .map((cell) => cell.value || \"\")\n .join(ItemValue.Separator)\n .replace(/\\|$/, \"\")\n )\n .join(\"\\n\");\n\n return result;\n }\n\n public static convertItemValuesToText(items: ItemValue[]): string {\n var text = \"\";\n\n items.forEach((item) => {\n if (text) text += \"\\n\";\n text += item.value;\n if (item.pureText) text += \"|\" + item.pureText;\n });\n\n return text;\n }\n\n public static convertTextToItemValues(\n text: string,\n properties: JsonObjectProperty[],\n className: string\n ): ItemValue[] {\n var items = [];\n if (!text) return items;\n\n var texts = text.split(\"\\n\");\n for (var i = 0; i < texts.length; i++) {\n if (!texts[i]) continue;\n var elements = texts[i].split(ItemValue.Separator);\n var valueItem = Serializer.createClass(className);\n properties.forEach((p, i) => {\n valueItem[p.name] = elements[i];\n });\n items.push(valueItem);\n }\n\n return items;\n }\n public static sortItems(items: Array<any>, propertyName = \"text\") {\n const getNumber = (str: string, index): number => {\n let strNum = \"\";\n while(index < str.length && str[index] >= \"0\" && str[index] <= \"9\") {\n strNum += str[index];\n index ++;\n }\n return parseFloat(strNum);\n };\n items.sort((a: any, b: any): number => {\n const aVal = !!a[propertyName] ? a[propertyName] : \"\";\n const bVal = !!b[propertyName] ? b[propertyName] : \"\";\n let index = 0;\n while (index < aVal.length && index < bVal.length && aVal[index] === bVal[index]) index++;\n if (index < aVal.length && index < bVal.length) {\n while (index > 0 && (aVal[index - 1] >= \"0\" && aVal[index - 1] <= \"9\")) index--;\n const aNum = getNumber(aVal, index);\n const bNum = getNumber(bVal, index);\n if(aNum < bNum) return -1;\n if(aNum > bNum) return 1;\n }\n return aVal.localeCompare(bVal);\n });\n }\n public static getQuestionContextIndexInfo(name: string, prefix: string = \"\"): {index: number, name: string} {\n const contextStrings = [\"row\", \"panel\"];\n for(var i = 0; i < contextStrings.length; i ++) {\n const subStr = prefix + contextStrings[i] + \".\";\n const index = name.indexOf(subStr);\n if(index > -1) return { index: index, name: subStr };\n }\n return undefined;\n }\n}\n","import { SvgRegistry } from \"survey-core\";\nexport var svgBundle;\nconst path = (<any>require).context(\"./images\", false, /\\.svg$/);\nSvgRegistry.registerIconsFromFolder(path);","import { SurveyModel } from \"survey-core\";\nimport { SurveyJSON5 } from \"./json5\";\n\nclass SurveyForTextWorker extends SurveyModel {\n constructor(jsonObj: any) {\n super();\n this.setDesignMode(true);\n this.fromJSON(jsonObj);\n }\n // public get isDesignMode(): boolean {\n // return true;\n // }\n}\n\nexport class SurveyTextWorker {\n public static newLineChar: string;\n public errors: Array<any>;\n private surveyValue: SurveyModel;\n private jsonValue: any;\n private surveyObjects: Array<any>;\n\n constructor(public text: string) {\n if (!this.text || this.text.trim() == \"\") {\n this.text = \"{}\";\n }\n this.errors = [];\n this.process();\n }\n public get survey(): SurveyModel {\n return this.surveyValue;\n }\n public get isJsonCorrect(): boolean {\n return this.errors.length === 0 && this.surveyValue !== null;\n }\n protected process() {\n try {\n this.jsonValue = new SurveyJSON5(1).parse(this.text);\n } catch (error) {\n this.errors.push({\n pos: { start: error.at, end: -1 },\n text: error.message,\n });\n }\n if (this.jsonValue != null) {\n this.updateJsonPositions(this.jsonValue);\n var pureJsonValue = new SurveyJSON5().parse(this.text);\n this.surveyValue = new SurveyForTextWorker(pureJsonValue);\n if (this.surveyValue.jsonErrors != null) {\n for (var i = 0; i < this.surveyValue.jsonErrors.length; i++) {\n var error = this.surveyValue.jsonErrors[i];\n this.errors.push({\n pos: { start: error.at, end: -1 },\n text: error.getFullDescription(),\n });\n }\n }\n }\n this.surveyObjects = this.createSurveyObjects();\n this.setEditorPositionByChartAt(this.surveyObjects);\n this.setEditorPositionByChartAt(this.errors);\n }\n private updateJsonPositions(jsonObj: any) {\n jsonObj[\"pos\"][\"self\"] = jsonObj;\n for (var key in jsonObj) {\n var obj = jsonObj[key];\n if (obj && obj[\"pos\"]) {\n jsonObj[\"pos\"][key] = obj[\"pos\"];\n this.updateJsonPositions(obj);\n }\n }\n }\n private createSurveyObjects(): Array<any> {\n var result = [];\n if (this.surveyValue == null) return result;\n for (var i = 0; i < this.surveyValue.pages.length; i++) {\n var page = this.surveyValue.pages[i];\n if (i == 0 && !page[\"pos\"]) {\n page[\"pos\"] = this.surveyValue[\"pos\"];\n }\n result.push(page);\n for (var j = 0; j < page.questions.length; j++) {\n result.push(page.questions[j]);\n }\n }\n return result;\n }\n private setEditorPositionByChartAt(objects: any[]) {\n if (objects == null || objects.length == 0) return;\n var position = { row: 0, column: 0 };\n var atObjectsArray = this.getAtArray(objects);\n var startAt: number = 0;\n for (var i = 0; i < atObjectsArray.length; i++) {\n var at = atObjectsArray[i].at;\n position = this.getPostionByChartAt(position, startAt, at);\n var obj = atObjectsArray[i].obj;\n if (!obj.position) obj.position = {};\n if (at == obj.pos.start) {\n obj.position.start = position;\n } else {\n if (at == obj.pos.end) {\n obj.position.end = position;\n }\n }\n startAt = at;\n }\n }\n private getPostionByChartAt(\n startPosition: any,\n startAt: number,\n at: number\n ): any {\n var result = { row: startPosition.row, column: startPosition.column };\n var curChar = startAt;\n while (curChar < at) {\n if (this.text.charAt(curChar) == SurveyTextWorker.newLineChar) {\n result.row++;\n result.column = 0;\n } else {\n result.column++;\n }\n curChar++;\n }\n return result;\n }\n private getAtArray(objects: any[]): any[] {\n var result = [];\n for (var i = 0; i < objects.length; i++) {\n var obj = objects[i];\n var pos = obj.pos;\n if (!pos) continue;\n result.push({ at: pos.start, obj: obj });\n if (pos.end > 0) {\n result.push({ at: pos.end, obj: obj });\n }\n }\n return result.sort((el1, el2) => {\n if (el1.at > el2.at) return 1;\n if (el1.at < el2.at) return -1;\n return 0;\n });\n }\n}\n","import {\n Action,\n AdaptiveActionContainer,\n Base,\n ComponentCollection,\n CustomWidgetCollection,\n DragDropSurveyElements,\n ElementFactory,\n IAction,\n JsonObject,\n property,\n propertyArray,\n Question,\n Serializer,\n SurveyModel,\n DragOrClickHelper\n} from \"survey-core\";\nimport { CreatorBase, toolboxLocationType } from \"./creator-base\";\nimport { editorLocalization, getLocString } from \"./editorLocalization\";\nimport { localization } from \"./entries\";\nimport { settings } from \"./creator-settings\";\n\n/**\n * The Toolbox item description.\n */\nexport interface IQuestionToolboxItem extends IAction {\n /**\n * A unique name\n */\n name: string;\n /**\n * Icon name\n */\n iconName: string;\n /**\n * The JSON that used to create a new question/panel. The 'type' attribute is required.\n */\n json: any;\n /**\n * Toolbox item title\n */\n title: string;\n /**\n * Toolbox item tooltip. It equals to title if it is empty\n */\n tooltip?: string;\n /**\n * True, if an end user added this item into Toolbox from the survey.\n */\n isCopied: boolean;\n /**\n * Toolbox item category. If it is empty, it goes to 'General' category.\n */\n category: string;\n}\n\nexport interface IQuestionToolbox {\n toggleCategoryState(name: string);\n}\n\nexport class QuestionToolboxCategory extends Base {\n constructor(private toolbox: IQuestionToolbox) {\n super();\n }\n @property() name: string;\n @propertyArray() items: Array<QuestionToolboxItem>;\n @property({ defaultValue: false }) collapsed: boolean;\n public toggleState() {\n if (this.toolbox) {\n this.toolbox.toggleCategoryState(this.name);\n }\n }\n}\nexport class QuestionToolboxItem extends Action implements IQuestionToolboxItem {\n constructor(private item: IQuestionToolboxItem) {\n super(item);\n }\n iconName: string;\n name: string;\n json: any;\n tooltip: string;\n isCopied: boolean;\n category: string;\n toJSON() {\n return this.item;\n }\n}\n\n/**\n * The list of Toolbox items.\n */\nexport class QuestionToolbox\n extends AdaptiveActionContainer<QuestionToolboxItem>\n implements IQuestionToolbox {\n static hiddenTypes = [\"buttongroup\", \"linkvalue\", \"embeddedsurvey\"];\n static defaultIconName = \"icon-default\";\n static defaultCategories = {\n toolboxChoiceCategory: [\"radiogroup\", \"rating\", \"checkbox\", \"dropdown\", \"tagbox\", \"boolean\", \"file\", \"imagepicker\", \"ranking\"],\n toolboxTextCategory: [\"text\", \"comment\", \"multipletext\"],\n toolboxContainersCategory: [\"panel\", \"paneldynamic\"],\n toolboxMatrixCategory: [\"matrix\", \"matrixdropdown\", \"matrixdynamic\"],\n toolboxMiscCategory: [\"html\", \"expression\", \"image\", \"signaturepad\"]\n }\n private _orderedQuestions = [\n \"radiogroup\", \"rating\", \"checkbox\", \"dropdown\", \"tagbox\", \"boolean\", \"file\", \"imagepicker\", \"ranking\",\n \"text\", \"comment\", \"multipletext\",\n \"panel\", \"paneldynamic\",\n \"matrix\", \"matrixdropdown\", \"matrixdynamic\",\n \"html\", \"expression\", \"image\", \"signaturepad\"\n ];\n\n public static getQuestionDefaultSettings(questionType: string): any {\n if (!settings.toolbox || !settings.toolbox.defaultJSON) return undefined;\n return settings.toolbox.defaultJSON[questionType];\n }\n /**\n * Modify this array to change the toolbox items order.\n */\n public get orderedQuestions(): string[] {\n return this._orderedQuestions;\n }\n public set orderedQuestions(questions: string[]) {\n this._orderedQuestions = questions;\n this.reorderItems();\n }\n /**\n * The maximum number of copied toolbox items. If an user adding copiedItemMaxCount + 1 item, the first added item will be removed.\n */\n public copiedItemMaxCount: number = 3;\n private allowExpandMultipleCategoriesValue: boolean = false;\n private keepAllCategoriesExpandedValue: boolean = false;\n @property({ defaultValue: false }) private showCategoryTitlesValue: boolean;\n private dragOrClickHelper: DragOrClickHelper;\n\n //koItems = ko.observableArray();\n /**\n * Contains toolbox categories and allows you to modify them.\n * \n * [View Demo](https://surveyjs.io/Examples/Survey-Creator?id=toolboxcategories)\n */\n @propertyArray() categories: Array<QuestionToolboxCategory>;\n /**\n * Set and get and active category. This property doesn't work if allowExpandMultipleCategories is true. Its default value is empty.\n * @see allowExpandMultipleCategories\n * @see expandCategory\n * @see collapseCategory\n */\n @property({\n defaultValue: \"\",\n onSet: (val: string, target: QuestionToolbox) => {\n target.onActiveCategoryChanged(val);\n }\n })\n activeCategory: string;\n @property({ defaultValue: false }) hasCategories: boolean;\n @property({ defaultValue: true }) canCollapseCategories: boolean;\n\n /**\n * Indicates whether the toolbox is currently in compact mode.\n * @see forceCompact\n */\n @property({\n defaultValue: false,\n onSet: (val: boolean, target: QuestionToolbox) => {\n if (target.hasCategories && target.showCategoryTitles) {\n if (val) {\n target.isResponsivenessDisabled = false;\n target.raiseUpdate(true);\n } else {\n target.isResponsivenessDisabled = true;\n target.setActionsMode(\"large\");\n }\n }\n }\n }) isCompact: boolean;\n /**\n * Specifies whether the toolbox should be in compact or full mode.\n * Accepts the following values:\n * - `true` - Toolbox is always in compact mode.\n * - `false` - Toolbox is always in full mode.\n * - `undefined` - Toolbox switches between the full and compact modes automatically based on available width.\n * @see isCompact\n */\n @property() forceCompact: boolean;\n\n constructor(\n private supportedQuestions: Array<string> = null,\n public creator: CreatorBase = null,\n useDefaultCategories = false\n ) {\n super();\n this.createDefaultItems(supportedQuestions, useDefaultCategories);\n this.initDotsItem();\n }\n\n private initDotsItem() {\n this.dotsItem.popupModel.horizontalPosition = \"right\";\n this.dotsItem.popupModel.verticalPosition = \"top\";\n this.dragOrClickHelper = new DragOrClickHelper((pointerDownEvent: PointerEvent, currentTarget: HTMLElement, itemModel: any) => {\n const json = this.creator.getJSONForNewElement(itemModel.json);\n this.dotsItem.popupModel.toggleVisibility();\n this.dragDropHelper.startDragToolboxItem(pointerDownEvent, json, itemModel.title);\n });\n this.hiddenItemsListModel.onPointerDown = (pointerDownEvent: PointerEvent, item: any) => {\n if (!this.creator.readOnly) {\n this.dragOrClickHelper.onPointerDown(pointerDownEvent, item);\n }\n };\n this.dotsItem.popupModel.cssClass = \"svc-toolbox-popup\";\n }\n private getDefaultQuestionCategories() {\n const questionCategoryMap = {};\n Object.keys(QuestionToolbox.defaultCategories).forEach((key) => {\n const cat = QuestionToolbox.defaultCategories[key];\n cat.forEach((name) => {\n if (!this.supportedQuestions || this.supportedQuestions.indexOf(name) != -1) {\n questionCategoryMap[name] = getLocString(\"ed.\" + key);\n }\n });\n });\n return questionCategoryMap;\n }\n\n private onActiveCategoryChanged(newValue: string) {\n const categories: Array<QuestionToolboxCategory> = this.categories;\n //if(!this.allowExpandMultipleCategories) {\n for (var i = 0; i < categories.length; i++) {\n var category = categories[i];\n category.collapsed = category.name !== newValue;\n }\n //}\n }\n public setLocation(toolboxLocation: toolboxLocationType) {\n if (toolboxLocation === \"sidebar\") {\n this.visibleActions.forEach((item) => (item.mode = \"small\"));\n } else {\n this.dotsItem.popupModel.horizontalPosition = this.creator.toolboxLocation == \"right\" ? \"left\" : \"right\";\n }\n }\n\n /**\n * The Array of Toolbox items as Text JSON.\n */\n public get jsonText() {\n return JSON.stringify(this.actions);\n }\n public set jsonText(value: string) {\n this.actions = value ? JSON.parse(value) : [];\n this.onItemsChanged();\n }\n /**\n * The Array of copied Toolbox items as Text JSON.\n */\n public get copiedJsonText(): string {\n return JSON.stringify(this.copiedItems);\n }\n public set copiedJsonText(value: string) {\n var newItems = value ? JSON.parse(value) : [];\n this.clearCopiedItems();\n for (let i: number = 0; i < newItems.length; i++) {\n newItems[i].isCopied = true;\n this.addItem(newItems[i]);\n }\n }\n /**\n * The Array of Toolbox items.\n */\n public get items(): Array<QuestionToolboxItem> {\n return this.actions;\n }\n public get itemNames(): Array<string> {\n const res: string[] = [];\n for (let i: number = 0; i < this.items.length; i++) {\n res.push(this.items[i].name);\n }\n return res;\n }\n /**\n * The Array of copied Toolbox items\n */\n public get copiedItems(): Array<QuestionToolboxItem> {\n const result: QuestionToolboxItem[] = [];\n for (let i: number = 0; i < this.actions.length; i++) {\n if (this.actions[i].isCopied) result.push(this.actions[i]);\n }\n return result;\n }\n /**\n * Add toolbox items into the Toolbox\n * @param items the list of new items\n * @param clearAll set it to true to clear all previous items.\n */\n public addItems(\n items: Array<IQuestionToolboxItem>,\n clearAll: boolean = false\n ) {\n if (clearAll) {\n this.clearItems();\n }\n for (let i: number = 0; i < items.length; i++) {\n this.actions.push(this.getActionByItem(items[i]));\n }\n this.onItemsChanged();\n }\n /**\n * Add a copied Question into Toolbox\n * @param question a copied Survey.Question\n * @param options a json object that allows you to override question properties. Attributes are: name, title, tooltip, isCopied, iconName, json and category.\n */\n public addCopiedItem(question: Question, options: any = null) {\n if (!options) options = {};\n const name: string = !!options.name ? options.name : question.name;\n const title: string = !!options.title ? options.title : name;\n const tooltip: string = !!options.tooltip ? options.tooltip : title;\n const item: IQuestionToolboxItem = {\n id: name,\n name: name,\n title: title,\n tooltip: tooltip,\n isCopied: options.isCopied !== false,\n iconName: !!options.iconName ? options.iconName : QuestionToolbox.defaultIconName,\n json: !!options.json ? options.json : this.getQuestionJSON(question),\n category: !!options.category ? options.category : \"\"\n };\n if (this.replaceItem(item)) return;\n const copied: IQuestionToolboxItem[] = this.copiedItems;\n if (this.copiedItemMaxCount > 0 && copied.length == this.copiedItemMaxCount)\n this.removeItem(copied[this.copiedItemMaxCount - 1].name);\n this.addItem(item);\n }\n /**\n * Add a toolbox item\n * @param item the toolbox item description\n * @param index the toolbox index to place the item, the item is added to the end if index not passed\n * @see IQuestionToolboxItem\n */\n private getActionByItem(item: IQuestionToolboxItem) {\n if (item instanceof QuestionToolboxItem) {\n return item;\n }\n else {\n item.iconName = item.iconName ? item.iconName : QuestionToolbox.defaultIconName;\n return new QuestionToolboxItem(item);\n }\n }\n public addItem(item: IQuestionToolboxItem, index?: number) {\n this.correctItem(item);\n const action = this.getActionByItem(item);\n if (index === undefined) {\n this.actions.push(action);\n } else {\n this.actions.splice(index, 0, action);\n }\n this.onItemsChanged();\n }\n private correctItem(item: IQuestionToolboxItem) {\n if (!item.title) item.title = item.name;\n if (!item.tooltip) item.tooltip = item.title;\n }\n private get dragDropHelper(): DragDropSurveyElements {\n return this.creator.dragDropSurveyElements;\n }\n /**\n * Add a new toolbox item, add delete the old item with the same name\n * @param item the toolbox item description\n * @see IQuestionToolboxItem\n */\n public replaceItem(item: IQuestionToolboxItem): boolean {\n this.correctItem(item);\n const index: number = this.indexOf(item.name);\n if (index < 0) return;\n this.actions[index] = this.getActionByItem(item);\n this.onItemsChanged();\n return true;\n }\n /**\n * Remove a toolbox item by its name\n * @param name toolbox item name\n * @see IQuestionToolboxItem\n */\n public removeItem(name: string): boolean {\n const index: number = this.indexOf(name);\n if (index < 0) return false;\n this.actions.splice(index, 1);\n this.onItemsChanged();\n return true;\n }\n /**\n * Remove all toolbox items.\n */\n public clearItems() {\n this.actions = [];\n this.onItemsChanged();\n }\n /**\n * Remove all copied toolbox items.\n */\n public clearCopiedItems() {\n const removedItems: IQuestionToolboxItem[] = this.copiedItems;\n for (let i: number = 0; i < removedItems.length; i++) {\n this.removeItem(removedItems[i].name);\n }\n }\n /**\n * Returns toolbox item by its name. Returns null if there is no toolbox item with this name\n * @param name\n */\n public getItemByName(name: string): IQuestionToolboxItem {\n const index: number = this.indexOf(name);\n return index > -1 ? this.actions[index] : null;\n }\n /**\n * Set it to true, to allow end-user to expand more than one category. There will no active category in this case\n * @see activeCategory\n */\n public get allowExpandMultipleCategories(): boolean {\n return this.allowExpandMultipleCategoriesValue;\n }\n public set allowExpandMultipleCategories(val: boolean) {\n this.allowExpandMultipleCategoriesValue = val;\n this.updateCategoriesState();\n }\n /**\n * Set it to true to expand all categories and hide expand/collapse category buttons\n */\n public get keepAllCategoriesExpanded(): boolean {\n return this.keepAllCategoriesExpandedValue || !this.showCategoryTitlesValue;\n }\n public set keepAllCategoriesExpanded(val: boolean) {\n this.keepAllCategoriesExpandedValue = val;\n this.canCollapseCategories = !this.keepAllCategoriesExpanded;\n this.updateCategoriesState();\n }\n\n /**\n * Specifies whether to display category titles in the Toolbox.\n *\n * If you disable this property, the Toolbox hides the titles but continues to display horizontal lines that divide categories. To remove these lines as well, call the `removeCategories()` method.\n * @see removeCategories\n */\n public get showCategoryTitles(): boolean {\n return this.showCategoryTitlesValue;\n }\n public set showCategoryTitles(val: boolean) {\n this.showCategoryTitlesValue = val;\n this.updateCategoriesState();\n }\n public updateTitles(): void {\n this.actions.forEach(action => {\n const newTitle = editorLocalization.getString(\"qt.\" + action.name);\n if (!!newTitle) {\n action.title = newTitle;\n action.tooltip = newTitle;\n }\n });\n }\n private updateCategoriesState() {\n var noActive = this.allowExpandMultipleCategories || this.keepAllCategoriesExpanded;\n if (noActive) {\n this.activeCategory = \"\";\n if (this.keepAllCategoriesExpandedValue) {\n this.expandAllCategories();\n }\n } else {\n if (this.categories.length > 0) {\n this.activeCategory = (<any>this.categories[0]).name;\n }\n }\n }\n\n /**\n * Change the category of the toolbox item\n * @param name the toolbox item name\n * @param category new category name\n */\n public changeCategory(name: string, category: string) {\n this.changeCategories([{ name: name, category: category }]);\n }\n /**\n * Change categories for several toolbox items.\n * @param changedItems the array of objects {name: \"your toolbox item name\", category: \"new category name\"}\n */\n public changeCategories(changedItems: Array<any>) {\n for (var i = 0; i < changedItems.length; i++) {\n var item = changedItems[i];\n var toolboxItem = this.getItemByName(item.name);\n if (toolboxItem) {\n toolboxItem.category = item.category;\n }\n }\n this.onItemsChanged();\n }\n\n /**\n * Removes categories from the Toolbox.\n */\n public removeCategories() {\n const allTypes: string[] = ElementFactory.Instance.getAllTypes();\n this.changeCategories(allTypes.map(t => ({ name: t, category: null })));\n this.onItemsChanged();\n }\n public toggleCategoryState(categoryName: string) {\n if (this.keepAllCategoriesExpanded) return;\n if (this.allowExpandMultipleCategories) {\n var category = this.getCategoryByName(categoryName);\n if (category) {\n category.collapsed = !category.collapsed;\n }\n } else {\n this.activeCategory = categoryName;\n }\n }\n /**\n * Expand a category by its name. If allowExpandMultipleCategories is false (default value), all other categories become collapsed\n * @param categoryName the category name\n * @see allowExpandMultipleCategories\n * @see collapseCategory\n */\n public expandCategory(categoryName: string) {\n if (this.allowExpandMultipleCategories) {\n var category = this.getCategoryByName(categoryName);\n if (category) {\n category.collapsed = false;\n }\n } else {\n if (this.canCollapseCategories) {\n this.activeCategory = categoryName;\n }\n }\n }\n /**\n * Collapse a category by its name. If allowExpandMultipleCategories is false (default value) this function does nothing\n * @param categoryName the category name\n * @see allowExpandMultipleCategories\n */\n public collapseCategory(categoryName: string) {\n if (!this.allowExpandMultipleCategories) return;\n var category = this.getCategoryByName(categoryName);\n if (category) {\n category.collapsed = true;\n }\n }\n /**\n * Expand all categories. If allowExpandMultipleCategories is false (default value) this function does nothing\n * @see allowExpandMultipleCategories\n */\n public expandAllCategories() {\n this.expandCollapseAllCategories(false);\n }\n /**\n * Collapse all categories. If allowExpandMultipleCategories is false (default value) this function does nothing\n * @see allowExpandMultipleCategories\n */\n public collapseAllCategories() {\n this.expandCollapseAllCategories(true);\n }\n public hiddenItemSelected(model: Action): void {\n this.creator.clickToolboxItem((<any>model).json);\n }\n private expandCollapseAllCategories(isCollapsed: boolean) {\n const categories = this.categories;\n for (var i = 0; i < categories.length; i++) {\n categories[i].collapsed = isCollapsed;\n }\n }\n private getCategoryByName(categoryName: string): any {\n const categories = this.categories;\n for (var i = 0; i < categories.length; i++) {\n var category = <any>categories[i];\n if (category.name === categoryName) return category;\n }\n return null;\n }\n protected onItemsChanged() {\n var categories = new Array<QuestionToolboxCategory>();\n var categoriesHash = {};\n var prevActiveCategory = this.activeCategory;\n for (var i = 0; i < this.actions.length; i++) {\n var item = this.actions[i];\n var categoryName = item.category ? item.category : editorLocalization.getString(\"ed.toolboxGeneralCategory\");\n if (!categoriesHash[categoryName]) {\n var category = this.createCategory();\n category.name = categoryName;\n category.collapsed = categoryName !== prevActiveCategory && !this.keepAllCategoriesExpanded;\n categoriesHash[categoryName] = category;\n categories.push(category);\n }\n categoriesHash[categoryName].items.push(item);\n }\n this.categories = categories;\n if (!this.keepAllCategoriesExpanded) {\n if (!this.allowExpandMultipleCategories) {\n if (prevActiveCategory && categoriesHash[prevActiveCategory]) {\n this.activeCategory = prevActiveCategory;\n } else {\n this.activeCategory = categories.length > 0 ? categories[0].name : \"\";\n }\n } else {\n if (categories.length > 0) {\n categories[0].collapsed = false;\n }\n }\n }\n\n let newItems = [];\n this.categories.forEach((cat) => {\n newItems = newItems.concat(cat.items);\n });\n this.actions = newItems;\n\n this.hasCategories = categories.length > 1;\n //this.updateCategoriesState();\n this.updateItemSeparators();\n this.raiseUpdate(false);\n }\n protected createCategory(): QuestionToolboxCategory {\n return new QuestionToolboxCategory(this);\n }\n private indexOf(name: string) {\n for (var i = 0; i < this.actions.length; i++) {\n if (this.actions[i].name == name) return i;\n }\n return -1;\n }\n private updateItemSeparators() {\n const categories = this.hasCategories ? this.categories : [{ items: this.actions }];\n categories.forEach((category: any, categoryIndex) => {\n (category.items || []).forEach((item, index) => {\n item.needSeparator = categoryIndex !== 0 && index == 0;\n if (item.innerItem) item.innerItem.needSeparator = item.needSeparator;\n });\n });\n }\n private reorderItems() {\n this.actions.sort((i1, i2) => {\n var index1 = this._orderedQuestions.indexOf(i1.name);\n if (index1 === -1) index1 = Number.MAX_VALUE;\n var index2 = this._orderedQuestions.indexOf(i2.name);\n if (index2 === -1) index2 = Number.MAX_VALUE;\n return index1 - index2;\n });\n this.onItemsChanged();\n }\n /**\n * Adds default items to the Toolbox. If the Toolbox contains any items before you call this method, they will be removed.\n * @param supportedQuestions Specifies which question and panel types to include in the Toolbox.\n * @param useDefaultCategories Pass `true` if you want to create default categories.\n */\n public createDefaultItems(supportedQuestions: Array<string>, useDefaultCategories: boolean) {\n this.clearItems();\n const questions = this.getQuestionTypes(supportedQuestions);\n const defaultCategories = useDefaultCategories ? this.getDefaultQuestionCategories() : {};\n\n for (var i = 0; i < questions.length; i++) {\n var name = questions[i];\n var question = ElementFactory.Instance.createElement(name, \"q1\");\n if (!question) {\n question = Serializer.createClass(name);\n }\n var json = this.getQuestionJSON(question);\n var title = editorLocalization.getString(\"qt.\" + name);\n const item: IQuestionToolboxItem = {\n id: name,\n name: name,\n iconName: \"icon-\" + name,\n title: title,\n tooltip: title,\n json: json,\n isCopied: false,\n category: (defaultCategories[name] || \"\")\n };\n this.actions.push(this.getActionByItem(item));\n }\n this.registerCustomWidgets();\n this.registerComponentQuestions();\n this.onItemsChanged();\n }\n private registerCustomWidgets() {\n var inst = CustomWidgetCollection.Instance;\n if (!inst.getActivatedBy) return;\n var widgets = inst.widgets;\n for (var i = 0; i < widgets.length; i++) {\n if (widgets[i].canShowInToolbox) {\n this.addItemFromJSON(widgets[i].widgetJson);\n }\n }\n }\n private registerComponentQuestions() {\n var items = this.getComponentItems();\n for (var i = 0; i < items.length; i++) {\n this.addItemFromJSON(items[i].json);\n }\n }\n private getComponentItems(): Array<any> {\n var instanceOwner = undefined; // CustomQuestionCollection;\n if (!instanceOwner) {\n instanceOwner = ComponentCollection;\n }\n if (!instanceOwner) return [];\n var items = instanceOwner.Instance[\"items\"];\n return !!items ? items : [];\n }\n private addItemFromJSON(json: any) {\n if (json.showInToolbox === false) return;\n const iconName: string = json.iconName ? json.iconName : QuestionToolbox.defaultIconName;\n let title: string = editorLocalization.getString(\"qt.\" + json.name);\n if (!title || title == json.name) {\n title = json.title;\n }\n if (!title) {\n title = json.name;\n }\n var elementJson = json.defaultJSON ? json.defaultJSON : {};\n if (!elementJson.type) {\n elementJson.type = json.name;\n }\n var category = json.category ? json.category : \"\";\n const item: IQuestionToolboxItem = <any>new Action(<any>{\n id: json.name,\n name: json.name,\n iconName: iconName,\n title: title,\n tooltip: title,\n json: elementJson,\n isCopied: false,\n category: category\n });\n const action = this.getActionByItem(item);\n const existingAction = this.getActionById(item.id);\n if (!!existingAction) {\n this.actions.splice(this.actions.indexOf(existingAction), 1, action);\n } else {\n const index = Array.isArray(this.supportedQuestions) ? this.supportedQuestions.indexOf(item.id) : -1;\n if (index > -1) {\n this.actions.splice(index, 0, action);\n } else {\n this.actions.push(action);\n }\n }\n }\n private getQuestionJSON(question: any): any {\n var json = new JsonObject().toJsonObject(question);\n json.type = question.getType();\n let defaultSettings = QuestionToolbox.getQuestionDefaultSettings(json.type);\n if (defaultSettings) {\n for (var key in defaultSettings) {\n json[key] = defaultSettings[key];\n }\n }\n return json;\n }\n private getQuestionTypes(supportedQuestions: Array<string>): string[] {\n const allTypes: string[] = ElementFactory.Instance.getAllTypes();\n if (!supportedQuestions || supportedQuestions.length == 0)\n supportedQuestions = allTypes;\n const questions: string[] = [];\n for (let i = 0; i < this.orderedQuestions.length; i++) {\n const name: string = this.orderedQuestions[i];\n if (supportedQuestions.indexOf(name) > -1 && allTypes.indexOf(name) > -1)\n questions.push(name);\n }\n for (let i = 0; i < supportedQuestions.length; i++) {\n var name: string = supportedQuestions[i];\n if (\n questions.indexOf(name) < 0 &&\n QuestionToolbox.hiddenTypes.indexOf(name) < 0 &&\n allTypes.indexOf(name) > -1\n )\n questions.push(name);\n }\n return questions;\n }\n\n public dispose() { }\n}\n","import {\n QuestionMatrixDynamicModel,\n IAction,\n MatrixDynamicRowModel\n} from \"survey-core\";\n\nexport function findAction(actions: Array<IAction>, id: string): IAction {\n if (!Array.isArray(actions)) return null;\n for (var i = 0; i < actions.length; i++) {\n if (actions[i].id === id) return actions[i];\n }\n return null;\n}\n\nexport function updateMatrixLogicExpandAction(question: QuestionMatrixDynamicModel,\n actions: Array<IAction>,\n row: MatrixDynamicRowModel) {\n const action = findAction(actions, \"show-detail\");\n if (!action) return;\n action.component = \"sv-action-bar-item\";\n action.iconName = \"icon-logic-expand\";\n action.innerCss = \"sl-table__action-button sl-table__detail-button\";\n action.iconSize = 48;\n action.showTitle = false;\n action.action = () => {\n row.showHideDetailPanelClick();\n };\n const updateIcon = () => { action.iconName = row.isDetailPanelShowing ? \"icon-logic-collapse\" : \"icon-logic-expand\"; };\n question.registerFunctionOnPropertyValueChanged(\"isRowShowing\" + row.id, updateIcon);\n updateIcon();\n}\n\nexport function updateMatrixLogicRemoveAction(question: QuestionMatrixDynamicModel, actions: Array<IAction>, row: MatrixDynamicRowModel) {\n updateMatrixRemoveAction(question, actions, row);\n const action = findAction(actions, \"remove-row\");\n if (!action) return;\n action.css = \"sl-table__action-button sl-table__remove-button\";\n}\nexport function updateMatrixRemoveAction(\n question: QuestionMatrixDynamicModel,\n actions: Array<IAction>,\n row: MatrixDynamicRowModel\n) {\n const action = findAction(actions, \"remove-row\");\n if (!action) return;\n action.component = \"sv-action-bar-item\";\n action.iconName = \"icon-delete\";\n action.innerCss = \"spg-action-button spg-action-button--danger\";\n action.title = question.removeRowText;\n action.showTitle = false;\n action.visibleIndex = 10;\n action.action = () => {\n question.removeRowUI(row);\n };\n}\n","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","export class ResizeManager {\n private originalMouseX: number;\n private originalWidth: number;\n private minWidth: number;\n private maxWidth: number;\n private westResizer: HTMLElement;\n private eastResizer: HTMLElement;\n private currentResizer: HTMLElement;\n private mouseDevice: \"mouse\" | \"pointer\" | \"touch\";\n private events = {\n \"mousedown\": { \"touch\": \"touchend\", \"mouse\": \"mousedown\", \"pointer\": \"pointerdown\" },\n \"mouseup\": { \"touch\": \"touchstart\", \"mouse\": \"mouseup\", \"pointer\": \"pointerup\" },\n \"mousemove\": { \"touch\": \"touchmove\", \"mouse\": \"mousemove\", \"pointer\": \"pointermove\" },\n }\n\n constructor(private container: HTMLElement, handles: string) {\n this.init(container);\n this.setHandles(handles);\n }\n public setHandles(newVal: string) {\n let isThereWestResizer = false;\n let isThereEastResizer = false;\n let inputVal = newVal.split(\",\");\n inputVal.forEach(str => str.trim());\n inputVal = inputVal.filter(str => !!str);\n (inputVal || []).forEach(handrail => {\n if (handrail == \"w\") isThereWestResizer = true;\n if (handrail == \"e\") isThereEastResizer = true;\n });\n\n this.westResizer.style[\"display\"] = isThereWestResizer ? \"block\" : \"none\";\n this.eastResizer.style[\"display\"] = isThereEastResizer ? \"block\" : \"none\";\n }\n private getStyleValue(element: HTMLElement, style: string): number {\n if(!window) return 0;\n return parseFloat(window.getComputedStyle(element).getPropertyValue(style).replace(\"px\", \"\"));\n }\n private isEventSupported(eventName: string) {\n let el = document.createElement(\"div\");\n eventName = \"on\" + eventName;\n let isSupported = (eventName in el);\n if (!isSupported) {\n el.setAttribute(eventName, \"return;\");\n isSupported = typeof el[eventName] == \"function\";\n }\n el = null;\n return isSupported;\n }\n private getEventPrefix() {\n if (this.mouseDevice === undefined) {\n if (this.isEventSupported(\"pointerdown\")) {\n this.mouseDevice = \"pointer\";\n }\n else if (this.isEventSupported(\"touchstart\")) {\n this.mouseDevice = \"touch\";\n }\n else if (this.isEventSupported(\"mousedown\")) {\n this.mouseDevice = \"mouse\";\n }\n }\n return this.mouseDevice;\n }\n private getMouseEvent(eventName: string): string {\n return this.events[eventName][this.getEventPrefix()];\n }\n private onMouseDownListener = (e: any) => {\n if(!window) return;\n e.preventDefault();\n this.originalWidth = this.getStyleValue(this.container, \"width\");\n this.originalMouseX = e.pageX;\n this.currentResizer = e.target;\n window.addEventListener(this.getMouseEvent(\"mousemove\"), this.resize);\n window.addEventListener(this.getMouseEvent(\"mouseup\"), this.stopResize);\n };\n private resize = (e: any) => {\n let width = this.originalWidth;\n const horizontalDistinction = e.pageX - this.originalMouseX;\n if (this.currentResizer == this.westResizer) {\n width -= horizontalDistinction;\n } else {\n width += horizontalDistinction;\n }\n if (width > this.maxWidth) {\n width = this.maxWidth;\n } else if (width < this.minWidth) {\n width = this.minWidth;\n }\n this.container.style.width = width + \"px\";\n };\n private stopResize = (e: any) => {\n if(!window) return;\n window.removeEventListener(this.getMouseEvent(\"mousemove\"), this.resize);\n window.removeEventListener(this.getMouseEvent(\"mouseup\"), this.stopResize);\n };\n private init(container: HTMLElement) {\n this.westResizer = this.createrResizerElement(\"svc-resizer svc-resizer-west\");\n this.eastResizer = this.createrResizerElement(\"svc-resizer svc-resizer-east\");\n this.minWidth = this.getStyleValue(container, \"min-width\");\n this.maxWidth = this.getStyleValue(container, \"max-width\");\n container.insertBefore(this.westResizer, container.children[0]);\n container.appendChild(this.eastResizer);\n }\n private createrResizerElement(className: string) {\n const resizer = document.createElement(\"div\");\n resizer.className = className;\n resizer.addEventListener(this.getMouseEvent(\"mousedown\"), this.onMouseDownListener);\n return resizer;\n }\n\n dispose() {\n this.eastResizer.removeEventListener(this.getMouseEvent(\"mousedown\"), this.onMouseDownListener);\n this.eastResizer.remove();\n this.eastResizer = undefined;\n\n this.westResizer.removeEventListener(this.getMouseEvent(\"mousedown\"), this.onMouseDownListener);\n this.westResizer.remove();\n this.westResizer = undefined;\n }\n}","import { defaultV2Css, ItemValue, Serializer } from \"survey-core\";\nimport { settings } from \"../creator-settings\";\n\nfunction getNumericFromString(str: string): string {\n if (!str) return \"\";\n var num = \"\";\n for (var i = str.length - 1; i >= 0; i--) {\n if (str[i] >= \"0\" && str[i] <= \"9\") {\n num = str[i] + num;\n } else {\n if (!!num) return num;\n }\n if (num.length == 10) break;\n }\n return num;\n}\n\nconst opositeValues = {\n true: \"false\",\n True: \"False\",\n TRUE: \"FALSE\",\n false: \"true\",\n False: \"True\",\n FALSE: \"TRUE\",\n yes: \"no\",\n Yes: \"No\",\n YES: \"NO\",\n no: \"yes\",\n No: \"Yes\",\n NO: \"YES\"\n};\nfunction getOpositValue(str: string): string {\n if (!!opositeValues[str]) return opositeValues[str];\n return null;\n}\nfunction hasValueInArray(values: any[], search: any): boolean {\n search = search.toString();\n for (var i = 0; i < values.length; i++) {\n if (!values[i]) continue;\n if (values[i].toString() === search) return true;\n }\n return false;\n}\nexport function getNextItemValue(prefix: string, choices: ItemValue[]): string | number {\n const values = choices.map((item: ItemValue) => item.value);\n return getNextValue(prefix, values);\n}\nexport function getNextItemText(choices: ItemValue[]): string {\n const ln = choices.length;\n if(ln === 0) return \"\";\n if(!choices[ln - 1].text || choices[ln - 1].text === choices[ln - 1].value) return \"\";\n const values = [];\n choices.forEach(item => { if(item.hasText) values.push(item.text); });\n choices.map((item: ItemValue) => item.text);\n const nextValue = getNextValue(\"\", values);\n return !!nextValue ? nextValue.toString() : \"\";\n}\nexport function getNextValue(prefix: string, values: any[]): string | number {\n if (values.length > 0)\n var oposite = getOpositValue(values[values.length - 1]);\n if (oposite && values.indexOf(oposite) < 0) return oposite;\n var numStr = \"\";\n var baseValue;\n var numStrIndex = -1;\n for (var i = values.length - 1; i >= 0; i--) {\n if (!values[i]) continue;\n var str = values[i].toString();\n numStr = getNumericFromString(str);\n if (!!numStr) {\n numStrIndex = str.lastIndexOf(numStr);\n baseValue = values[i];\n break;\n }\n }\n if (numStrIndex > -1) {\n var num = parseInt(numStr);\n var isNumber = baseValue === num;\n var newValue;\n do {\n if (isNumber) {\n newValue = ++num;\n }\n else {\n var newNum = (num++).toString();\n while (numStr.length > newNum.length) {\n newNum = \"0\" + newNum;\n }\n newValue = str.substring(0, numStrIndex) + newNum + str.substring(numStrIndex + numStr.length);\n }\n } while (hasValueInArray(values, newValue));\n return newValue;\n }\n if(!prefix) {\n prefix = values[values.length - 1];\n }\n return prefix + 1;\n}\n\nexport function findParentNode(className: string, sourceNode: HTMLElement) {\n var parent = sourceNode;\n while (!!parent && !parent.classList.contains(className)) {\n parent = parent.parentElement;\n }\n return parent;\n}\n\nexport function focusFirstControl(renderedElements: HTMLElement[]) {\n for (var i = 0; i < renderedElements.length; i++) {\n if (typeof renderedElements[i].getElementsByClassName === \"function\") {\n var elements = <HTMLCollectionOf<HTMLElement>>(\n renderedElements[i].getElementsByClassName(\"svd-focusable\")\n );\n if (\n elements.length === 0 &&\n renderedElements[i].className.indexOf(\"svd-focusable\") !== -1\n ) {\n elements = <any>[renderedElements[i]];\n }\n if (elements.length > 0) {\n var element = elements[0];\n if (element.tagName.toLowerCase() !== \"a\") {\n element.focus({ preventScroll: true });\n break;\n }\n }\n }\n }\n}\n\nexport function getFirstNonTextElement(elements: any) {\n if (!elements || !elements.length) return;\n for (var i = 0; i < elements.length; i++) {\n if (elements[i].nodeName != \"#text\" && elements[i].nodeName != \"#comment\")\n return elements[i];\n }\n return null;\n}\n\n// about compoentInfo: https://knockoutjs.com/documentation/component-registration.html\nexport function getNodesFromKoComponentInfo(componentInfo) {\n // elem.nodeType === 3 // text node\n // elem.nodeType === 8 // comment node\n\n let element = componentInfo.element;\n const siblings = [];\n\n if (element.nodeType !== 8) {\n return element.childNodes;\n }\n\n while ((element = element.nextSibling)) {\n if (element.nodeType === 3) continue;\n siblings.push(element);\n }\n return siblings;\n}\n\n// ko.bindingHandlers[\"trueclick\"] = {\n// init: function (element, valueAccessor, allBindingsAccessor) {\n// element.onclick = () => true;\n// },\n// };\n\n// export function createKey2click(element: HTMLElement) {\n// return (ev: KeyboardEvent) => {\n// var char = ev.which || ev.keyCode;\n// if (char === 13 || char === 32) {\n// element.click();\n// } else if (char === 27) {\n// element.blur();\n// }\n// };\n// }\n\n// ko.bindingHandlers[\"key2click\"] = {\n// init: function (element, valueAccessor, allBindingsAccessor) {\n// element.onkeyup = createKey2click(element);\n// },\n// };\n\n// ko.bindingHandlers[\"clickNoFocus\"] = {\n// init: function (element, valueAccessor, allBindingsAccessor, viewModel) {\n// element.onclick = (ev) => {\n// valueAccessor().call(viewModel, viewModel, ev);\n// };\n// },\n// };\n\n// ko.bindingHandlers[\"afterRenderParent\"] = {\n// init: function (element, valueAccessor, allBindingsAccessor, viewModel) {\n// element.style.display = \"none\";\n// valueAccessor() && valueAccessor()([element.parentElement]);\n// },\n// };\n\nexport function propertyExists(obj: any, propertyName: string) {\n let result = true;\n if (!!obj && typeof obj.getType === \"function\") {\n const property = Serializer.findProperty(obj.getType(), propertyName);\n result = !!property;\n }\n return result;\n}\n\nexport function isPropertyVisible(obj: any, propertyName: string) {\n let result = true;\n if (!!obj && typeof obj.getType === \"function\") {\n const property = Serializer.findProperty(obj.getType(), propertyName);\n result = !property || property.visible;\n }\n return result;\n}\n\nexport function toggleHovered(e: MouseEvent, element: HTMLElement, timeout = 0) {\n const processedFlagName = \"__svc_question_processed\";\n const name = \"svc-hovered\";\n const nameReady = \"svc-hovered-ready\";\n\n function setClass(className, checkReady = null) {\n const arr = (element.className || \"\").split(\" \");\n if (checkReady) {\n if (arr.indexOf(checkReady) == -1) {\n return;\n }\n }\n if (arr.indexOf(className) == -1) {\n element.className += \" \" + className;\n }\n }\n\n if (!e[processedFlagName] && e.type === \"mouseover\") {\n if (timeout) {\n setClass(nameReady);\n setTimeout(() => {\n setClass(name, nameReady);\n }, timeout);\n }\n else {\n setClass(name);\n }\n e[processedFlagName] = true;\n } else {\n element.className = (element.className || \"\").replace(\" svc-hovered-ready\", \"\");\n element.className = (element.className || \"\").replace(\" svc-hovered\", \"\");\n }\n}\n\nexport function clearNewLines(text: string) {\n return text.replace(new RegExp(\"(\\\\r\\\\n|\\\\n|\\\\r)\", \"gm\"), \"\");\n}\n\nexport function select(element: any) {\n if (!window) return;\n var range, selection;\n if (window.getSelection && document.createRange) {\n selection = window.getSelection();\n range = document.createRange();\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n } else if (document[\"selection\"] && document.body[\"createTextRange\"]) {\n range = document.body[\"createTextRange\"]();\n range.moveToElementText(element);\n range.select();\n }\n}\nexport function copyObject(dst: any, src: any) {\n for (let key in src) {\n let source = src[key];\n if (typeof source === \"object\") {\n source = {};\n this.copyObject(source, src[key]);\n }\n dst[key] = source;\n }\n}\nexport function copyCssClasses(dest: any, source: any) {\n if (!source) return;\n if (typeof source === \"string\" || source instanceof String) {\n dest[\"root\"] = source;\n } else {\n copyObject(dest, source);\n }\n}\n\nexport function assignDefaultV2Classes(destination: any, questionType: string) {\n copyCssClasses(destination, defaultV2Css.question);\n copyCssClasses(destination, defaultV2Css[questionType]);\n}\n\nexport function wrapTextByCurlyBraces(text: string) {\n return settings.logic.openBracket + text + settings.logic.closeBracket;\n}\n\nexport function capitalize(str: string): string {\n if (!str) return str;\n str = str.replace(/[\\s]+/g, \" \");\n str = str.replace(/([\\s]|^)(\\S)/g, (_, p1, p2) => {\n return p1 + p2.toUpperCase();\n });\n return str;\n}\nexport function notShortCircuitAnd(...args: Array<boolean>): boolean {\n return args.every((val) => val === true);\n}","module.exports = __WEBPACK_EXTERNAL_MODULE_survey_core__;"],"sourceRoot":""}