{"version":3,"file":"segment-editor.js","mappings":"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AA;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;AA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","sources":["webpack://admin-webpack/./Shared/SegmentFilter/SegmentFilter.less","webpack://admin-webpack/../../../node_modules/css-loader/dist/runtime/api.js","webpack://admin-webpack/../../../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://admin-webpack/../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://admin-webpack/../../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://admin-webpack/../../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://admin-webpack/../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://admin-webpack/../../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://admin-webpack/../../../node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://admin-webpack/webpack/bootstrap","webpack://admin-webpack/webpack/runtime/compat get default export","webpack://admin-webpack/webpack/runtime/define property getters","webpack://admin-webpack/webpack/runtime/hasOwnProperty shorthand","webpack://admin-webpack/webpack/runtime/nonce","webpack://admin-webpack/./Shared/SegmentFilter/SegmentFilter.less?2e36","webpack://admin-webpack/./Shared/SegmentFilter/SegmentFilter.service.ts","webpack://admin-webpack/./Utils/Misc.ts","webpack://admin-webpack/./Shared/SegmentFilter/SegmentFilter.ts","webpack://admin-webpack/external var \"ko\"","webpack://admin-webpack/./PluginsCustom/knockout.ts","webpack://admin-webpack/./Segments/SegmentEditor.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `body .sortablePlaceholder {\n --variant-height: 117px;\n position: relative;\n background-color: black;\n}\n.inline-group {\n display: flex;\n height: 40px;\n width: 100%;\n}\n.inline-group .inline-label {\n min-width: 90px;\n text-align: right;\n padding-right: 15px;\n}\n.fl-itm-c {\n align-items: center;\n}\n.fl-cnt-c {\n align-content: center;\n}\n.icon-btn {\n display: flex;\n align-items: center;\n font-size: 22px;\n line-height: 19px;\n}\n.btn-link {\n box-shadow: none !important;\n}\n.btn-link:hover {\n color: #000;\n}\n/*\n.btn-minimal {\n color: #1fa9b0;\n box-shadow: none !important;\n background: none;\n\n &:hover {\n color: #000;\n }\n}\n*/\n.input-invalid:after {\n content: '!';\n color: #fff;\n font-size: 11px;\n font-weight: 900;\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n top: -4px;\n left: -5px;\n height: 14px;\n width: 14px;\n background-color: red;\n border-radius: 50%;\n}\nsegment-filter {\n position: relative;\n width: 100%;\n}\n.segment-builder {\n --sb-max-height: initial;\n --transition-duration: 0.2s;\n --transition-timing-function: ease;\n display: block;\n position: relative;\n height: auto;\n width: 100%;\n overflow: hidden;\n}\n.segment-builder .content-wrapper {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: auto;\n width: 100%;\n}\n.segment-builder:before {\n content: '';\n position: relative;\n display: block;\n height: 100%;\n height: var(--sb-max-height);\n width: 100%;\n transition: height 0.34s ease;\n}\n.segment-builder .segment-filter .segment-builder:before {\n transition-duration: 0s;\n}\n.segment-builder .segment-filter .list-unstyled {\n padding: 0;\n}\n.segment-builder .navbar-default,\n.segment-builder #name,\n.segment-builder #description,\n.segment-builder .custom-scrollbar {\n background-color: #f8f8fa;\n}\n.segment-builder .segment-container {\n display: block;\n position: relative;\n padding: 10px 0;\n width: 100%;\n}\n.segment-builder .segment-container .list-unstyled {\n padding: 0;\n}\n.segment-builder .segment-container .conjunction {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n height: 0;\n margin-left: 42px;\n bottom: 100%;\n}\n.segment-builder .segment-container .conjunction h5 {\n margin: 0 !important;\n}\n.segment-builder .segment-container .conjunction .badge {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0 5px;\n background-color: #198a8f;\n border-radius: 2px;\n transition: opacity 0.08s ease;\n transition-property: transform, opacity;\n transition-delay: 0.2s;\n opacity: 1;\n user-select: none;\n}\n.segment-builder .segment-container .conjunction .badge h5 {\n font-weight: 600;\n font-size: 10px;\n color: white;\n text-transform: uppercase;\n}\n.segment-builder .segment-container.is-dragged .conjunction .badge {\n transform: scale(0.6);\n opacity: 0;\n}\n.segment-builder .segment-container .segment-set {\n display: grid;\n position: relative;\n grid-auto-flow: column;\n grid-template-columns: 24px auto 44px;\n margin: 0;\n padding: 0;\n border-radius: 4px;\n background-color: white;\n border: 1px solid #ddd;\n}\n.segment-builder .segment-container .segment-set.hide-right-tools {\n grid-template-columns: 24px auto 0;\n}\n.segment-builder .segment-container .segment-set.hide-right-tools > .right-tools {\n display: none;\n}\n.segment-builder .segment-container .drag-handle,\n.segment-builder .segment-container .right-tools {\n display: flex;\n position: relative;\n justify-content: center;\n align-items: center;\n grid-column: 1;\n height: 100%;\n width: 100%;\n}\n.segment-builder .segment-container .drag-handle {\n background-color: #198a8f08;\n border-radius: 4px 0 0 4px;\n}\n.segment-builder .segment-container .drag-handle .vector-icon {\n height: 100%;\n}\n.segment-builder .segment-container .drag-handle:hover {\n cursor: grab;\n}\n.segment-builder .segment-container .drag-handle:active {\n cursor: grabbing;\n}\n.segment-builder .segment-container .right-tools {\n display: flex;\n grid-column: 3;\n margin-left: auto;\n border-radius: 0 6px 6px 0;\n}\n.segment-builder .segment-container .right-tools .btn:hover .prime {\n fill: #a9638b;\n}\n.segment-builder .segment-container .segment-filter {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n grid-column: 2;\n padding: 4px 8px;\n}\n.segment-builder .segment-container .segment-filter .form-group {\n margin: 5px 4px;\n}\n.segment-builder .segment-container .segment-filter .form-group:not(.w-minmax-xxxl) {\n flex-grow: 1;\n}\n.segment-builder .segment-container .segment-filter .form-group + .form-group {\n padding-left: 0px;\n}\n.segment-builder .segment-container .segment-filter .form-control {\n height: 30px;\n padding: 4px 10px;\n font-size: 13px;\n}\n.segment-builder .segment-container .segment-filter .input-group-btn > .btn {\n height: 35px;\n}\n.segment-builder .segment-container .segment-filter .form-control-static {\n font-size: 13px;\n min-height: 0;\n padding: 10px 10px;\n}\n.segment-builder .segment-container .segment-filter .row :not(:first-child) {\n padding-left: 0;\n}\n.segment-builder .segment-container .segment-filter .row :not(:last-child) {\n padding-right: 5px;\n}\n.segment-builder .segment-container .segment-filter .select2-container {\n padding: 2px !important;\n min-height: 30px;\n}\n.segment-builder .segment-container .segment-filter .select2-container .select2-choices {\n gap: 2px;\n}\n.segment-builder .segment-container .segment-filter .select2-container .select2-choices .select2-search-choice {\n padding-top: 4px;\n padding-bottom: 4px;\n}\n.segment-builder .segment-container .segment-filter .select2-container .select2-choices .select2-search-choice .select2-search-choice-close {\n top: 4px;\n}\n.segment-builder .segment-container .segment-filter .mx-w-30rem {\n flex-grow: 1;\n}\n.segment-builder .segment-container .segment-filter .row {\n display: flex;\n}\n.segment-builder .segment-container .segment-filter .btn {\n padding: 4px 11px;\n font-size: 13px;\n}\n.sort-active .segment-container:nth-child(2) .conjunction .badge,\n.ui-sortable-placeholder + .segment-container .conjunction .badge,\n.ui-sortable-helper.segment-container + .segment-container .conjunction .badge,\n.ui-sortable-helper.segment-container .conjunction .badge {\n transform: scale(0.6);\n opacity: 0;\n transition-delay: 0s;\n}\n.sort-active .ko_container.ui-sortable {\n overflow-y: hidden;\n}\n.autocomplete-dropdown {\n display: none;\n position: absolute;\n width: var(--ac-width);\n top: var(--ac-dropdown-top);\n left: var(--ac-dropdown-left);\n padding: 4px;\n border: 1px solid #1fa9b0;\n background-color: #fff;\n z-index: 4;\n}\n.autocomplete-dropdown.dis-bl {\n display: block;\n}\n.autocomplete-dropdown .autocomplete-option {\n padding: 4px 8px;\n user-select: none;\n cursor: pointer;\n}\n.autocomplete-dropdown .autocomplete-option.marked {\n color: #fff;\n background-color: #1fa9b0;\n}\n.working-indicator {\n display: block;\n position: absolute;\n height: 3px;\n width: var(--ac-width);\n border-radius: 1px;\n overflow: hidden;\n pointer-events: none;\n}\n.working-indicator.btm {\n bottom: 0;\n}\n.working-indicator.top {\n top: 0;\n}\n.working-indicator:before,\n.working-indicator:after {\n content: '';\n display: block;\n position: absolute;\n height: 100%;\n width: 0px;\n}\n.working-indicator:before {\n background-color: #198a8f3b;\n}\n.working-indicator.active:before {\n animation: loading 0.6s linear infinite;\n}\n.working-indicator:after {\n background-color: #eb4a6f87;\n}\n.working-indicator.active:after {\n animation: loading2 0.4s linear infinite 0.1s;\n}\n@keyframes loading {\n 0% {\n width: 0px;\n transform: translateX(-24px);\n }\n 1% {\n width: 12px;\n transform: translateX(-24px);\n }\n 25% {\n width: 60px;\n transform: translateX(calc(var(--ac-width) * 0.1));\n }\n 60% {\n width: 100px;\n transform: translateX(calc(var(--ac-width) * 0.6));\n }\n 99% {\n width: 120px;\n transform: translateX(calc(var(--ac-width) + 40px));\n }\n 100% {\n width: 0px;\n transform: translateX(calc(var(--ac-width) + 120px));\n }\n}\n@keyframes loading2 {\n 0% {\n width: 0px;\n transform: translateX(-66px);\n }\n 1% {\n width: 44px;\n transform: translateX(-66px);\n }\n 50% {\n width: 30px;\n }\n 99% {\n width: 34px;\n transform: translateX(calc(var(--ac-width) + 24px));\n }\n 100% {\n width: 0px;\n transform: translateX(calc(var(--ac-width) + 34px));\n }\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./Shared/SegmentFilter/SegmentFilter.less\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"body .sortablePlaceholder {\\n --variant-height: 117px;\\n position: relative;\\n //height: var(--variant-height);\\n background-color: black;\\n}\\n\\n.inline-group {\\n display: flex;\\n height: 40px;\\n width: 100%;\\n\\n & .inline-label {\\n min-width: 90px;\\n text-align: right;\\n padding-right: 15px;\\n }\\n}\\n\\n.fl-itm-c {\\n align-items: center\\n}\\n\\n.fl-cnt-c {\\n align-content: center\\n}\\n\\n.icon-btn {\\n display: flex;\\n align-items: center;\\n font-size: 22px;\\n line-height: 19px;\\n}\\n\\n.btn-link {\\n box-shadow: none !important;\\n\\n &:hover {\\n color: #000;\\n }\\n}\\n\\n/*\\n.btn-minimal {\\n color: #1fa9b0;\\n box-shadow: none !important;\\n background: none;\\n\\n &:hover {\\n color: #000;\\n }\\n}\\n*/\\n\\n.input-invalid:after {\\n content: '!';\\n color: #fff;\\n font-size: 11px;\\n font-weight: 900;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n position: absolute;\\n top: -4px;\\n left: -5px;\\n height: 14px;\\n width: 14px;\\n background-color: red;\\n border-radius: 50%;\\n}\\n\\nsegment-filter {\\n position: relative;\\n width: 100%;\\n}\\n\\n.segment-builder {\\n --sb-max-height: initial;\\n --transition-duration: .2s;\\n --transition-timing-function: ease;\\n display: block;\\n position: relative;\\n height: auto;\\n width: 100%;\\n overflow: hidden;\\n\\n & .content-wrapper {\\n display: block;\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: auto;\\n width: 100%;\\n }\\n\\n &:before {\\n content: '';\\n position: relative;\\n display: block;\\n height: 100%;\\n height: var(--sb-max-height);\\n width: 100%;\\n transition: height .34s ease;\\n }\\n\\n .segment-filter .segment-builder:before {\\n transition-duration: 0s;\\n }\\n\\n & .segment-filter .list-unstyled {\\n padding: 0;\\n }\\n\\n .navbar-default, #name, #description, .custom-scrollbar {\\n background-color: #f8f8fa;\\n }\\n\\n .segment-container {\\n display: block;\\n position: relative;\\n padding: 10px 0;\\n width: 100%;\\n\\n .list-unstyled {\\n padding: 0;\\n }\\n\\n .conjunction {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n position: absolute;\\n height: 0;\\n margin-left: 42px;\\n bottom: 100%;\\n\\n h5 {\\n margin: 0 !important;\\n }\\n\\n .badge {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n padding: 0 5px;\\n background-color: #198a8f;\\n border-radius: 2px;\\n transition: opacity .08s ease;\\n transition-property: transform, opacity;\\n transition-delay: .2s;\\n opacity: 1;\\n user-select: none;\\n\\n h5 {\\n font-weight: 600;\\n font-size: 10px;\\n color: white;\\n text-transform: uppercase;\\n }\\n }\\n }\\n\\n &.is-dragged .conjunction .badge {\\n transform: scale(.6);\\n opacity: 0;\\n }\\n\\n .segment-set {\\n display: grid;\\n position: relative;\\n grid-auto-flow: column;\\n grid-template-columns: 24px auto 44px;\\n margin: 0;\\n padding: 0;\\n border-radius: 4px;\\n background-color: white;\\n border: 1px solid #ddd;\\n\\n &.hide-right-tools {\\n grid-template-columns: 24px auto 0;\\n\\n & > .right-tools {\\n display: none;\\n }\\n }\\n }\\n\\n .drag-handle,\\n .right-tools {\\n display: flex;\\n position: relative;\\n justify-content: center;\\n align-items: center;\\n grid-column: 1;\\n height: 100%;\\n width: 100%;\\n }\\n\\n .drag-handle {\\n background-color: #198a8f08;\\n border-radius: 4px 0 0 4px;\\n\\n .vector-icon {\\n height: 100%;\\n //width: 100%;\\n }\\n\\n &:hover {\\n cursor: grab;\\n }\\n\\n &:active {\\n cursor: grabbing;\\n }\\n }\\n\\n .right-tools {\\n display: flex;\\n grid-column: 3;\\n margin-left: auto;\\n border-radius: 0 6px 6px 0;\\n\\n .btn:hover .prime {\\n fill: #a9638b;\\n }\\n }\\n\\n .segment-filter {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: center;\\n grid-column: 2;\\n padding: 4px 8px;\\n\\n .form-group {\\n margin: 5px 4px;\\n\\n &:not(.w-minmax-xxxl) {\\n flex-grow: 1;\\n }\\n }\\n\\n .form-group + .form-group {\\n padding-left: 0px;\\n }\\n\\n .form-control {\\n height: 30px;\\n padding: 4px 10px;\\n font-size: 13px;\\n }\\n\\n .input-group-btn > .btn {\\n height: 35px;\\n }\\n\\n .form-control-static {\\n font-size: 13px;\\n min-height: 0;\\n padding: 10px 10px;\\n }\\n\\n .row :not(:first-child) {\\n padding-left: 0;\\n }\\n\\n .row :not(:last-child) {\\n padding-right: 5px;\\n }\\n\\n .select2-container {\\n padding: 2px !important;\\n min-height: 30px;\\n\\n .select2-choices {\\n gap: 2px;\\n\\n .select2-search-choice {\\n padding-top: 4px;\\n padding-bottom: 4px;\\n\\n .select2-search-choice-close {\\n top: 4px;\\n }\\n }\\n }\\n }\\n\\n .mx-w-30rem {\\n flex-grow: 1;\\n }\\n\\n .row {\\n display: flex;\\n }\\n\\n .btn {\\n padding: 4px 11px;\\n font-size: 13px;\\n }\\n }\\n }\\n}\\n\\n.sort-active .segment-container:nth-child(2) .conjunction .badge,\\n.ui-sortable-placeholder + .segment-container .conjunction .badge,\\n.ui-sortable-helper.segment-container + .segment-container .conjunction .badge,\\n.ui-sortable-helper.segment-container .conjunction .badge {\\n transform: scale(.6);\\n opacity: 0;\\n transition-delay: 0s;\\n}\\n\\n.sort-active .ko_container.ui-sortable {\\n overflow-y: hidden;\\n}\\n\\n//autocomplete component, move this\\n.autocomplete-dropdown {\\n display: none;\\n position: absolute;\\n width: var(--ac-width);\\n top: var(--ac-dropdown-top);\\n left: var(--ac-dropdown-left);\\n padding: 4px;\\n border: 1px solid #1fa9b0;\\n background-color: #fff;\\n z-index: 4;\\n\\n &.dis-bl {\\n display: block;\\n }\\n\\n .autocomplete-option {\\n padding: 4px 8px;\\n user-select: none;\\n cursor: pointer;\\n\\n &.marked {\\n color: #fff;\\n background-color: #1fa9b0;\\n }\\n }\\n}\\n\\n.working-indicator {\\n display: block;\\n position: absolute;\\n height: 3px;\\n width: var(--ac-width);\\n border-radius: 1px;\\n\\n overflow: hidden;\\n pointer-events: none;\\n\\n &.btm {\\n bottom: 0;\\n }\\n\\n &.top {\\n top: 0;\\n }\\n\\n &:before, &:after {\\n content: '';\\n display: block;\\n position: absolute;\\n height: 100%;\\n width: 0px;\\n }\\n\\n &:before {\\n background-color: #198a8f3b;\\n }\\n &.active:before {\\n animation: loading .6s linear infinite;\\n }\\n\\n &:after {\\n background-color: #eb4a6f87;\\n \\n }\\n &.active:after {\\n animation: loading2 .4s linear infinite .1s;\\n }\\n}\\n\\n@keyframes loading {\\n 0% {\\n width: 0px;\\n transform: translateX(-24px);\\n }\\n 1% {\\n width: 12px;\\n transform: translateX(-24px);\\n }\\n\\n 25% {\\n width: 60px;\\n transform: translateX(calc(var(--ac-width) * .1 ));\\n }\\n\\n 60% {\\n width: 100px;\\n transform: translateX(calc(var(--ac-width) * .6 ));\\n }\\n\\n 99% {\\n width: 120px;\\n transform: translateX(calc(var(--ac-width) + 40px ));\\n }\\n 100% {\\n width: 0px;\\n transform: translateX(calc(var(--ac-width) + 120px ));\\n }\\n}\\n\\n@keyframes loading2 {\\n 0% {\\n width: 0px;\\n transform: translateX(-66px);\\n }\\n 1% {\\n width: 44px;\\n transform: translateX(-66px);\\n }\\n 50% {\\n width: 30px;\\n }\\n 99% {\\n width: 34px;\\n transform: translateX(calc(var(--ac-width) + 24px ));\\n }\\n 100% {\\n width: 0px;\\n transform: translateX(calc(var(--ac-width) + 34px ));\\n }\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.nc = undefined;","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../node_modules/less-loader/dist/cjs.js!./SegmentFilter.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../node_modules/less-loader/dist/cjs.js!./SegmentFilter.less\";\n export default content && content.locals ? content.locals : undefined;\n","import {PropertySegmentOperator} from \"admin-vite/Journeys/components/UserInterface/Menues/Partials/ConditionList\";\r\n\r\n\r\nenum PropertyOperator {\r\n Empty = 9,\r\n NotEmpty = 10\r\n}\r\n\r\nexport const proto_watch = (target: any, callback: any, handler: any, ctx: any) => {\r\n\r\n // proxy computed subscription\r\n let { proxy, revoke } = Proxy.revocable(callback, handler),\r\n cache = {}\r\n\r\n\r\n Object.setPrototypeOf(target, {\r\n // bundle in segment prototype\r\n watcher: ko.pureComputed(function () {\r\n\r\n let changes: any = {}\r\n for (let key of Object.keys(this)) {\r\n if (typeof this[ key ] !== 'function') continue\r\n\r\n let val = this[ key ]()\r\n if (cache[ key ] !== val) {\r\n\r\n if (typeof this[ key ].validate === 'function')\r\n changes[ key ] = this[ key ]\r\n\r\n cache[ key ] = val\r\n }\r\n }\r\n\r\n return { changes, target, ctx, c: this }\r\n\r\n }, target).subscribe(proxy, target),\r\n\r\n //** disposal\r\n dispose() {\r\n this.watcher.dispose()\r\n revoke()\r\n }\r\n })\r\n},\r\n// ko works best with the apply proxy trap because of multiple read & write operations on observable value change\r\nhandler_SegmentApply = {\r\n apply(tgt: any, _this: any, arg: any[]) {\r\n\r\n // simply reflect everything\r\n return tgt.apply(_this, arg)\r\n }\r\n},\r\n// might be the only thing that differs between segments. \r\n// NOTE: changes argument varies in structure depending on observable type\r\nsubscriptionCallback = function (changes: any) {\r\n let target = changes?.target || changes\r\n\r\n if (!changes) return\r\n\r\n for (let k in target) {\r\n typeof target[ k ]?.validate === 'function'\r\n && target[ k ]?.validate()\r\n }\r\n}\r\n\r\n\r\n\r\ninterface PropertyValidationProto {\r\n valid: boolean\r\n validate: Func\r\n}\r\n\r\n\r\nexport const setValidationProps = (segment: ko_AnySegment_Inter) => {\r\n let { Type, Property, Operator, Value, MinAge, MaxAge, TagIds, SmsMessageId, IssueId, TimeSpanSince, ListId, SegmentId, EventId, Statuses, Types, ObjectId, SurveyId,QuestionId,QuestionOptionId,TimeSpan,Conditions } = segment,\r\n validate: Func\r\n\r\n switch (Type()) {\r\n case 'SegmentGroup':\r\n // nothing to validate\r\n break\r\n\r\n case 'PropertySegment':\r\n Property.valid = ko.observable(false)\r\n Value.valid = ko.observable(false)\r\n\r\n Property.validate = () =>\r\n Property.valid(!isNaN(Property())).valid()\r\n\r\n Value.validate = () => {\r\n let v = Value()\r\n\r\n return Value.valid(typeof v === 'string'\r\n ? !!v.trim()\r\n : typeof v === 'boolean'\r\n ? v\r\n : isNaN(v) || !!([ PropertyOperator.Empty, PropertyOperator.NotEmpty ].indexOf(Operator()) + 1))\r\n .valid()\r\n }\r\n\r\n break\r\n\r\n case 'AgeSegment':\r\n\r\n MinAge.valid = ko.observable(false)\r\n MaxAge.valid = ko.observable(false)\r\n\r\n validate = () => {\r\n let min = parseInt(MinAge()),\r\n max = parseInt(MaxAge())\r\n\r\n let result = (min >= 0 && max > 0 && min < max)\r\n || ((min >= 0 && isNaN(max)) || (max > 0 && isNaN(min)))\r\n ? true : false\r\n\r\n MinAge.valid(result)\r\n MaxAge.valid(result)\r\n\r\n return result\r\n }\r\n\r\n MinAge.validate = MaxAge.validate = validate\r\n\r\n break\r\n\r\n case 'TagSegment':\r\n\r\n TagIds.valid = ko.observable(false)\r\n\r\n TagIds.validate = () =>\r\n TagIds.valid(!!TagIds().length).valid()\r\n\r\n break\r\n\r\n case 'RecipientSegment':\r\n\r\n IssueId.valid = ko.observable(false)\r\n TimeSpanSince.valid = ko.observable(false) // case Operator not null\r\n\r\n IssueId.validate = () =>\r\n IssueId.valid(!!IssueId()).valid()\r\n\r\n TimeSpanSince.validate = () =>\r\n TimeSpanSince.valid(!Operator() || (Operator() && !!TimeSpanSince())).valid()\r\n\r\n break\r\n case 'SmsRecipientSegment':\r\n\r\n SmsMessageId.valid = ko.observable(false)\r\n TimeSpanSince.valid = ko.observable(false) // case Operator not null\r\n\r\n SmsMessageId.validate = () =>\r\n SmsMessageId.valid(!!SmsMessageId()).valid()\r\n\r\n TimeSpanSince.validate = () =>\r\n TimeSpanSince.valid(!Operator() || (Operator() && !!TimeSpanSince())).valid()\r\n\r\n break\r\n case 'MemberSegment':\r\n\r\n ListId.valid = ko.observable(false)\r\n TimeSpanSince.valid = ko.observable(false) // case Operator not null\r\n\r\n ListId.validate = () =>\r\n ListId.valid(!!ListId()).valid()\r\n\r\n TimeSpanSince.validate = () =>\r\n TimeSpanSince.valid(!Operator() || (Operator() && !!TimeSpanSince())).valid()\r\n\r\n break\r\n \r\n case 'IssueRecipientLimiterSegment':\r\n \r\n Value.valid = ko.observable(false)\r\n Value.validate = () =>\r\n Value.valid(!TimeSpan() || (TimeSpan() && !!Value())).valid()\r\n\r\n break\r\n\r\n case 'SegmentMemberSegment':\r\n\r\n SegmentId.valid = ko.observable(false)\r\n\r\n SegmentId.validate = () =>\r\n SegmentId.valid(!!SegmentId()).valid()\r\n\r\n break\r\n\r\n case 'EventParticipantIssueSegment':\r\n\r\n EventId.valid = ko.observable(false)\r\n Statuses.valid = ko.observable(false)\r\n\r\n EventId.validate = () =>\r\n EventId.valid(!!EventId()).valid()\r\n\r\n Statuses.validate = () =>\r\n Statuses.valid(!!Statuses().length).valid()\r\n\r\n break\r\n\r\n case 'EventParticipantSmsSegment':\r\n\r\n EventId.valid = ko.observable(false)\r\n Statuses.valid = ko.observable(false)\r\n\r\n EventId.validate = () =>\r\n EventId.valid(!!EventId()).valid()\r\n\r\n Statuses.validate = () =>\r\n Statuses.valid(!!Statuses().length).valid()\r\n\r\n break\r\n\r\n case 'EventParticipantSegment':\r\n\r\n EventId.valid = ko.observable(false)\r\n Statuses.valid = ko.observable(false)\r\n\r\n EventId.validate = () =>\r\n EventId.valid(!!EventId()).valid()\r\n\r\n Statuses.validate = () =>\r\n Statuses.valid(!!Statuses().length).valid()\r\n\r\n break\r\n\r\n case 'EventParticipantStatusSegment':\r\n\r\n EventId.valid = ko.observable(false)\r\n Statuses.valid = ko.observable(false)\r\n\r\n EventId.validate = () =>\r\n EventId.valid(!!EventId()).valid()\r\n\r\n Statuses.validate = () =>\r\n Statuses.valid(!!Statuses().length).valid()\r\n\r\n break\r\n case 'InteractionSegment':\r\n\r\n ObjectId.valid = ko.observable(false);\r\n\r\n ObjectId.validate = () =>\r\n ObjectId.valid(!!ObjectId()).valid();\r\n \r\n //Types.validate = () =>\r\n // Types.valid(!!Types().length).valid()\r\n break;\r\n\r\n case 'SurveyRespondentSegment':\r\n\r\n SurveyId.valid = ko.observable(false)\r\n\r\n SurveyId.validate = () =>\r\n SurveyId.valid(!!SurveyId()).valid()\r\n\r\n break;\r\n\r\n case 'SurveyAnswerSegment':\r\n\r\n SurveyId.valid = ko.observable(false)\r\n QuestionId.valid = ko.observable(false)\r\n QuestionOptionId.valid = ko.observable(false)\r\n\r\n QuestionOptionId.validate = () => QuestionOptionId.valid(!!QuestionOptionId()).valid()\r\n QuestionId.validate = () => QuestionId.valid(!!QuestionId()).valid()\r\n SurveyId.validate = () => SurveyId.valid(!!SurveyId()).valid()\r\n break;\r\n\r\n case 'ContactRelativeDateSegment':\r\n Property.valid = ko.observable(false)\r\n Value.valid = ko.observable(false)\r\n\r\n Property.validate = () =>\r\n Property.valid(!isNaN(Property())).valid()\r\n\r\n Value.validate = () =>\r\n Value.valid(!isNaN(Value())).valid() \r\n\r\n break;\r\n\r\n\r\n case 'DataPointSegment':\r\n\r\n // Conditions = ko.observable(false)\r\n //\r\n // Conditions.validate = () =>\r\n // Conditions.valid(!Operator() || (Operator() && !!Conditions())).valid()\r\n \r\n // Conditions = ko.observableArray;\r\n //\r\n // Conditions.validate = () =>\r\n // Conditions.valid(!isNaN(Conditions())).valid()\r\n\r\n break;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst segments: SegmentConstructorCollection = {\r\n\r\n SegmentGroup: ({ Bool = 1, Name = null, Segments = [] }) => ({\r\n Type: 'SegmentGroup',\r\n Bool,\r\n Name,\r\n Segments\r\n }),\r\n\r\n PropertySegment: ({ Name = null, Operator = 0, Property = undefined, Value = null }) => ({\r\n Type: 'PropertySegment',\r\n Name,\r\n Operator,\r\n Property,\r\n Value\r\n }),\r\n\r\n AgeSegment: ({ Name = null, MinAge = null, MaxAge = null }) => ({\r\n Type: 'AgeSegment',\r\n Name,\r\n MinAge,\r\n MaxAge\r\n }),\r\n\r\n TagSegment: ({ Name = null, TagIds = [], HasTags = true, Bool = null }) => ({\r\n Type: 'TagSegment',\r\n Name,\r\n TagIds,\r\n HasTags,\r\n Bool\r\n }),\r\n\r\n RecipientSegment: ({ Name = null, IssueId = null, ReceivedMailing = true, Operator = null, TimeSpanSince = null }) => ({\r\n Type: 'RecipientSegment',\r\n Name,\r\n IssueId,\r\n ReceivedMailing,\r\n Operator,\r\n TimeSpanSince\r\n }),\r\n\r\n SmsRecipientSegment: ({ Name = null, SmsMessageId = null, Received = true, Operator = null, TimeSpanSince = null }) => ({\r\n Type: 'SmsRecipientSegment',\r\n Name,\r\n SmsMessageId,\r\n Received,\r\n Operator,\r\n TimeSpanSince\r\n }),\r\n\r\n MemberSegment: ({ Name = null, ListId = null, InList = true, Operator = 0, TimeSpanSince = null }) => ({\r\n Type: 'MemberSegment',\r\n Name,\r\n ListId,\r\n InList,\r\n Operator,\r\n TimeSpanSince\r\n }),\r\n IssueRecipientLimiterSegment: ({ Name = null, TimeSpan = 0, Value = null, HasReceivedEmail = true }) => ({\r\n Type: 'IssueRecipientLimiterSegment',\r\n Name,\r\n TimeSpan,\r\n Value,\r\n HasReceivedEmail\r\n }),\r\n\r\n SegmentMemberSegment: ({ Name = null, SegmentId = null, InSegment = true }) => ({\r\n Type: 'SegmentMemberSegment',\r\n Name,\r\n SegmentId,\r\n InSegment,\r\n }),\r\n\r\n EventParticipantIssueSegment: ({ Name = null, EventId = null, HasReceivedEmail = true, HasStatus = true, Statuses = [] }) => ({\r\n Type: 'EventParticipantIssueSegment',\r\n Name,\r\n EventId,\r\n HasReceivedEmail,\r\n HasStatus,\r\n Statuses\r\n }),\r\n\r\n EventParticipantSmsSegment: ({ Name = null, EventId = null, HasReceivedSms = true, HasStatus = true, Statuses = [] }) => ({\r\n Type: 'EventParticipantSmsSegment',\r\n Name,\r\n EventId,\r\n HasReceivedSms,\r\n HasStatus,\r\n Statuses\r\n }),\r\n\r\n EventParticipantSegment: ({ Name = null, EventId = null, HasReceivedEmail = true, HasStatus = true, Statuses = [] }) => ({\r\n Type: 'EventParticipantSegment',\r\n Name,\r\n EventId,\r\n HasReceivedEmail,\r\n HasStatus,\r\n Statuses\r\n }),\r\n EventParticipantStatusSegment: ({ Name = null, EventId = null,HasStatus = true, Statuses = [] }) => ({\r\n Type: 'EventParticipantStatusSegment',\r\n Name,\r\n EventId,\r\n HasStatus,\r\n Statuses\r\n }),\r\n\r\n InteractionSegment: ({ Name = null, ObjectId = null, HasInteractions = true, Types = [] }) => ({\r\n Type: 'InteractionSegment',\r\n Name,\r\n ObjectId,\r\n HasInteractions,\r\n Types\r\n }),\r\n\r\n SurveyRespondentSegment: ({ Name = null, SurveyId = null, HasReceivedEmail = true, HasResponded = true }) => ({\r\n Type: 'SurveyRespondentSegment',\r\n Name,\r\n SurveyId,\r\n HasReceivedEmail,\r\n HasResponded\r\n }),\r\n SurveyAnswerSegment: ({ Name = null, SurveyId = null,QuestionId = null,QuestionOptionId = null, HasResponded = true }) => ({\r\n Type: 'SurveyAnswerSegment',\r\n Name,\r\n SurveyId, \r\n HasResponded,\r\n QuestionId,\r\n QuestionOptionId\r\n }),\r\n ContactRelativeDateSegment: ({ Name = null, Operator = 0, Property = undefined, Value = null }) => ({\r\n Type: 'ContactRelativeDateSegment',\r\n Name,\r\n Operator,\r\n Property,\r\n Value\r\n }),\r\n DataPointSegment: ({ Name = null, Conditions = [ segmentExtrasFactory.DataPointCondition() ], HasDataPoints=true}) => ({\r\n Type: 'DataPointSegment',\r\n Name,\r\n HasDataPoints,\r\n Conditions\r\n }),\r\n \r\n}\r\n\r\nconst segmentExtrasFactory = {\r\n DataPointCondition: ({ Key, Operator, Type, Value }: { Key: string, Operator: number, Type: number, Value: string } = { Key: '', Operator: 0, Type: 0, Value: '' }) => ({\r\n Key,\r\n Operator,\r\n Type,\r\n Value\r\n })\r\n}\r\n\r\n// used by dropdown\r\nexport const segmentTypes: string[] = [\r\n 'SegmentGroup',\r\n 'PropertySegment',\r\n 'AgeSegment',\r\n 'TagSegment',\r\n 'RecipientSegment',\r\n 'SmsRecipientSegment',\r\n 'MemberSegment',\r\n 'SegmentMemberSegment',\r\n 'EventParticipantIssueSegment',\r\n 'EventParticipantSmsSegment',\r\n 'EventParticipantSegment',\r\n 'EventParticipantStatusSegment',\r\n 'InteractionSegment',\r\n 'SurveyRespondentSegment',\r\n 'ContactRelativeDateSegment',\r\n 'SurveyAnswerSegment',\r\n 'IssueRecipientLimiterSegment',\r\n 'DataPointSegment'\r\n]\r\n\r\nexport const newDataPointCondition = () => {\r\n let condition = ko.mapping.fromJS(segmentExtrasFactory.DataPointCondition())\r\n\r\n return condition\r\n}\r\n\r\n/**\r\n * Create new segment and map to ko\r\n */\r\nexport const newSegment = (segmentType: string, callback: any, ctx: any = null, props: any = {}): ko_AnySegment_Inter => {\r\n console.log('is segment empty',segmentType)\r\n let segment = ko.mapping.fromJS(segments[ segmentType ](props))\r\n\r\n setValidationProps(segment)\r\n proto_watch(segment, callback, handler_SegmentApply, ctx)\r\n\r\n return segment\r\n}\r\n\r\n\r\n","\r\n\r\n/**\r\n * Smaller miscellanious utility stuff\r\n * */\r\n\r\n\r\n\r\nlet debounceTimeout: any // NodeJs.Timeout throws namespace error during compilation \r\n/** Debounce method */\r\nexport const debounce = (callback: any, options?: { payload?: any, delay?: number }) => {\r\n let delay = options?.delay || 1000\r\n\r\n clearTimeout(debounceTimeout)\r\n debounceTimeout = setTimeout(() => {\r\n callback(options?.payload)\r\n }, delay)\r\n}\r\n\r\n\r\n\r\n\r\n\r\n/** string convention mutation methods */\r\nexport const toCamelCase = (v: string) => v.replace(/-\\w/g, repUpper),\r\n toPascalCase = (v: string) => v.replace(/(^\\w|-\\w)/g, repUpper),\r\n toKebabCase = (v: string) => v.replace(/(^.[A-Z])/g, repDash)\r\n\r\nconst repUpper = (v: string) => v.replace(/-/, '').toUpperCase(),\r\n repDash = (v: string) => v.replace(/[A-Z]/, '-' + v.toLowerCase())\r\n\r\n\r\nexport const stringTo = {\r\n camelCase: toCamelCase,\r\n pascalCase: toPascalCase,\r\n kebakCase: toKebabCase\r\n}\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * returns a hashed id of specified length (default: 6)\r\n */\r\nexport const uid = (l: number = 6): string => {\r\n let ts = Date.now(),\r\n uid = ((ts << 5) + ts).toString(32) + (16 ** 16 * Math.random() << 2).toString(32)\r\n return uid.substring(Math.round(uid.length / 2 - l / 2) + 2, Math.round(uid.length / 2 + l / 2) + 2)\r\n}\r\n\r\n\r\n/** simple method for escaping regexp special characters */\r\nexport const escapeRegExpString = (string: string) => string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\r\n\r\n\r\n\r\n/**\r\n * \r\n * @param tag - element tag\r\n * @param classes - setAttr 'style' string\r\n * @param inlineStyles - setAttr 'style' string\r\n */\r\nexport const newDomElement = (tag: string, options: { classes?: string, inlineStyles?: string } = {}) => {\r\n let el = document.createElement(tag),\r\n { classes, inlineStyles } = options\r\n\r\n if (classes)\r\n el.setAttribute('class', classes)\r\n\r\n if (inlineStyles)\r\n el.setAttribute('style', inlineStyles)\r\n\r\n return el\r\n}\r\n\r\n/**\r\n * A simple set proxy trap\r\n * @param obj - target object\r\n * @param handlers - methods to process value changes of obj properties with same key\r\n * @param options - alwaysNotify [ default: false ]\r\n */\r\nexport const proxySet = (obj: T, handlers: { [ k in keyof T ]?: (v: T[ k ]) => void }, options: { alwaysNotify?: boolean } = {}) =>\r\n new Proxy(obj, {\r\n set(o, p, v, r) {\r\n if (!options.alwaysNotify && o[ p ] === v) return Reflect.set(o, p, v, r)\r\n typeof handlers[ p ] === 'function' &&\r\n handlers[ p ](v)\r\n return Reflect.set(o, p, v, r)\r\n }\r\n })\r\n\r\n\r\n\r\n\r\nexport const rs_observer = new ResizeObserver((entries: any[]) => {\r\n for (let entry of entries) {\r\n entry.target.setCustomProperty()\r\n }\r\n})","///\r\n\r\n\r\nimport './SegmentFilter.less'\r\nimport { proto_watch, subscriptionCallback, handler_SegmentApply, setValidationProps, segmentTypes, newSegment, newDataPointCondition } from './SegmentFilter.service'\r\n\r\n// utils\r\nimport { uid, debounce, rs_observer } from '@utils/Misc'\r\n\r\n\r\n// type overrides\r\ninterface SegmentFilter {\r\n $refs: {\r\n [k: string]: HTMLElement & HTMLInputElement\r\n }\r\n}\r\n\r\n\r\n\r\nclass BaseSegmentFilter {\r\n\r\n cid = uid()\r\n\r\n callback = subscriptionCallback.bind(this)\r\n segment: KnockoutObservable = ko.observable({\r\n SegmentDefinition: newSegment('SegmentGroup', this.callback)\r\n })\r\n\r\n segmentGroup = ko.pureComputed(() => this.segment().SegmentDefinition)\r\n\r\n // For property segments\r\n segmentProperties: KnockoutObservableArray = ko.observableArray([])\r\n contactRelativeSegmentProperty: KnockoutObservableArray = ko.observableArray([])\r\n dataPointDataType: KnockoutObservableArray = ko.observableArray([])\r\n //contactFields: any\r\n contactRelativeSegmentOperators: KnockoutObservableArray = ko.observableArray([])\r\n propertyOperators: KnockoutObservableArray = ko.observableArray([])\r\n eventParticipantStatuses: KnockoutObservableArray = ko.observableArray([])\r\n interactionTypes: KnockoutObservableArray = ko.observableArray([]) \r\n // For recipient segments\r\n recipientOperators: KnockoutObservableArray = ko.observableArray([])\r\n smsRecipientOperators: KnockoutObservableArray = ko.observableArray([])\r\n // For member segments\r\n memberOperators: KnockoutObservableArray = ko.observableArray([]) \r\n IssueRecipientLimiterTimeSpan: KnockoutObservableArray = ko.observableArray([])\r\n contactCount: KnockoutObservable = ko.observable(0)\r\n\r\n\r\n segmentDataPromise: PromiseLike\r\n getSegmentData() {\r\n this.segmentDataPromise = Promise.all([\r\n\r\n !!this.segmentProperties().length\r\n || $.fn.application.get('/Segments/Properties').then(this.segmentProperties),\r\n !!this.contactRelativeSegmentProperty().length\r\n || $.fn.application.get('/Segments/ContactRelativeDateProperty').then(this.contactRelativeSegmentProperty),\r\n !!this.dataPointDataType().length\r\n || $.fn.application.get('/Segments/DataPointDataType').then(this.dataPointDataType),\r\n !!this.contactRelativeSegmentOperators().length\r\n || $.fn.application.get('/Segments/ContactRelativeDateOperators').then(this.contactRelativeSegmentOperators),\r\n !!this.propertyOperators().length\r\n || $.fn.application.get('/Segments/PropertyOperators').then(this.propertyOperators),\r\n\r\n $.fn.application.get('/Segments/RecipientOperators').then(this.recipientOperators),\r\n $.fn.application.get('/Segments/SmsRecipientOperators').then(this.smsRecipientOperators),\r\n $.fn.application.get('/Segments/MemberOperators').then(this.memberOperators),\r\n $.fn.application.get('/Segments/IssueRecipientLimiterTimeSpan').then(this.IssueRecipientLimiterTimeSpan),\r\n $.fn.application.get('/Segments/EventParticipantStatuses').then(this.eventParticipantStatuses),\r\n $.fn.application.get('/Segments/InteractionTypes').then(this.interactionTypes)\r\n ])\r\n }\r\n\r\n applyProcessor = (segment: any) => {\r\n const pw_processor = (segment: ko_AnySegment_Inter, ctx: any) => {\r\n setValidationProps(segment as ko_AnySegment_Inter)\r\n proto_watch(segment, subscriptionCallback.bind(ctx), handler_SegmentApply, ctx)\r\n }\r\n\r\n this.validateFromRoot(true, segment, pw_processor)\r\n\r\n return segment\r\n }\r\n\r\n getSegment(segmentId: string) {\r\n\r\n $.fn.application.get('/Segments/' + segmentId)\r\n .then((segment: any) => {\r\n\r\n let seg = ko.mapping.fromJS(segment)\r\n\r\n this.segment(this.applyProcessor(seg))\r\n })\r\n }\r\n\r\n\r\n deleteEmpty: boolean = false\r\n namespace: string\r\n rootContainer: HTMLElement = null\r\n\r\n //** _CONSTRUCTOR\r\n constructor(params: BaseSegmentFilterParams = {}) {\r\n this.namespace = params.namespace || 'global'\r\n\r\n this.getSegmentData()\r\n\r\n this.setParams(params)\r\n\r\n if (subscriptions[this.cid + 'rs'])\r\n subscriptions[this.cid + 'rs'].dispose()\r\n\r\n subscriptions[this.cid + 'rs'] = this.segment().SegmentDefinition.Segments.subscribe((segments: ko_AnySegment_Union[]) => {\r\n if (this.deleteEmpty && segments.length > 0 && !this.segmentId())\r\n this.createRootSegment()\r\n })\r\n }\r\n\r\n segmentId = ko.observable()\r\n autoCollapseAt: number = 0 // < 0: dont autocollapse\r\n rootCollapsed = false\r\n owner: {\r\n ObjectId: null,\r\n OwnedByRelation: null\r\n }\r\n name = ko.observable()\r\n async setParams(params: BaseSegmentFilterParams | any = {}) {\r\n\r\n // skip fetching same data if it's supplied\r\n // to the first instance of base\r\n if (!this.segmentProperties().length && params.properties)\r\n this.segmentProperties(params.properties())\r\n\r\n if (!this.propertyOperators().length && params.propertyOperators)\r\n this.propertyOperators(params.propertyOperators())\r\n\r\n if (!this.contactRelativeSegmentProperty().length && params.contactRelativeSegmentProperty)\r\n this.contactRelativeSegmentProperty(params.contactRelativeSegmentProperty())\r\n\r\n if (!this.dataPointDataType().length && params.dataPointDataType)\r\n this.dataPointDataType(params.dataPointDataType())\r\n \r\n if (!this.contactRelativeSegmentOperators().length && params.contactRelativeSegmentOperators)\r\n this.contactRelativeSegmentOperators(params.contactRelativeSegmentOperators())\r\n \r\n await this.segmentDataPromise\r\n\r\n if (params.beforeSave)\r\n params.beforeSave[this.cid] = this.save\r\n\r\n if (params.segment) {\r\n this.segmentId = params.segment.SegmentId\r\n\r\n this.segment(this.applyProcessor(params.segment))\r\n }\r\n else if (params.segmentId) {\r\n this.segmentId = params.segmentId\r\n\r\n if (params.segmentId())\r\n this.getSegment(params.segmentId())\r\n }\r\n\r\n if (params.name)\r\n this.name = params.name\r\n\r\n if (params.owner)\r\n this.owner = params.owner()\r\n\r\n if (params.deleteEmpty)\r\n this.deleteEmpty = params.deleteEmpty\r\n\r\n if (params.autoCollapseAt) {\r\n this.autoCollapseAt = params.autoCollapseAt\r\n this.rootCollapsed = this.segment().SegmentDefinition.Segments().length >= this.autoCollapseAt ? true : false\r\n }\r\n\r\n if (params.rootCollapsed) {\r\n this.rootCollapsed = ko.unwrap(params.rootCollapsed)\r\n }\r\n\r\n if (params.validate)\r\n params.validate.push(this.validateFromRoot)\r\n }\r\n\r\n\r\n createRootSegment = () => {\r\n $.fn.application.post('/Segments/' + `?name=${this.name()}&objectId=${this.owner.ObjectId}&relation=${this.owner.OwnedByRelation}`)\r\n .then((result: any) => {\r\n this.segmentId(result.SegmentId)\r\n result.Name = this.name()\r\n result.OwnedByObjectId = this.owner?.ObjectId || null\r\n result.OwnedByRelation = this.owner?.OwnedByRelation || null\r\n result = ko.mapping.fromJS(result)\r\n result.SegmentDefinition = this.segment().SegmentDefinition\r\n\r\n this.segment(result)\r\n })\r\n }\r\n\r\n\r\n updateSegment = () => {\r\n $.fn.application.post('/Segments/' + this.segmentId(), ko.mapping.toJSON(this.segment, { ignore: ['dispose', 'watcher'] }))\r\n }\r\n\r\n deleteSegment = () => {\r\n let toDelete = ko.mapping.toJS([this.segment])\r\n this.segmentId(null)\r\n\r\n $.fn.application.delete('/Segments', { '': toDelete })\r\n .then(() => {\r\n console.log('segment filter deleted')\r\n })\r\n }\r\n\r\n\r\n\r\n save = () => {\r\n let segments_len = this.segment().SegmentDefinition.Segments().length\r\n if (this.deleteEmpty && segments_len === 0) {\r\n this.segmentId() &&\r\n this.deleteSegment()\r\n return true\r\n }\r\n\r\n let [isValid] = this.validateFromRoot()\r\n if (isValid && this.segmentId())\r\n this.updateSegment()\r\n\r\n return isValid\r\n }\r\n\r\n\r\n\r\n previewCount = () => {\r\n this.validateFromRoot()\r\n //$.fn.application.get('/Segments/CountIssueRecipients' + '?issueId=' + this.owner.ObjectId)\r\n // .then((result: number) => {\r\n // this.contactCount(result)\r\n // console.log('iiiiiiii', result)\r\n // })\r\n }\r\n\r\n showInvalid = ko.observable(false)\r\n validateFromRoot = (quiet: boolean = false, segment: ko_Segment = this.segment(), processor: Func = () => { }) => {\r\n let allOk = true, len = 0\r\n\r\n const traverse = (segments: ko_AnySegment_Union[]) => {\r\n len += segments.length\r\n\r\n for (let segment of segments) {\r\n\r\n processor(segment, segments)\r\n\r\n if (segment.Type() === 'SegmentGroup')\r\n traverse((segment).Segments())\r\n\r\n else\r\n for (let prop in segment) {\r\n if (typeof segment[prop].validate === 'function') {\r\n let valid = segment[prop].validate()\r\n allOk &&= valid\r\n }\r\n }\r\n }\r\n }\r\n\r\n traverse(segment.SegmentDefinition.Segments())\r\n this.rootCollapsed = this.autoCollapseAt > 0 && this.autoCollapseAt < len\r\n\r\n !quiet && this.showInvalid(!allOk)\r\n\r\n return [allOk, len]\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport const subscriptions: any = {},\r\n instances: {\r\n [k: string]: BaseSegmentFilter\r\n } = {},\r\n setBase = (params: any = {}) => {\r\n let base = instances[params.namespace || 'global'] ||= new BaseSegmentFilter(params)\r\n\r\n base\r\n ? base.setParams(params) // set or add params from all instances (TODO: filter)\r\n : base = new BaseSegmentFilter(params)\r\n\r\n return base\r\n }\r\n\r\n\r\n\r\n\r\n\r\nclass SegmentFilter {\r\n\r\n cid = uid()\r\n base: BaseSegmentFilter\r\n\r\n level: number = -1\r\n\r\n segmentGroup: KnockoutObservable = ko.observable()\r\n\r\n\r\n conditionCount = ko.pureComputed(() => {\r\n\r\n this.conditionCount.old = this.conditionCount.cur || 0\r\n this.conditionCount.cur = this.segmentGroup().Segments().length || 0\r\n\r\n return this.conditionCount.cur\r\n }) as KnockoutComputed & { old: number, cur: number }\r\n\r\n\r\n setCustomProperty = (val: number = this.conditionCount.cur) => {\r\n requestAnimationFrame(() => {\r\n let height = val === 0\r\n ? (this.level && this.$refs.info.offsetHeight)\r\n : this.collapsed()\r\n ? this.$refs.info.offsetHeight\r\n : this.$refs.wrapper.offsetHeight\r\n\r\n this.$refs.root.style.setProperty('--sb-max-height', height + 'px')\r\n })\r\n }\r\n\r\n\r\n setupDomRefs: any = (name: string, el: HTMLElement & { setCustomProperty: () => void }) => {\r\n\r\n if (this.level === 0 && name === 'root')\r\n this.base.rootContainer = el.parentElement\r\n\r\n if (name === 'wrapper') {\r\n el.setCustomProperty = this.setCustomProperty\r\n rs_observer.observe(el)\r\n }\r\n }\r\n\r\n\r\n collapsed = ko.observable(false)\r\n toggleCollapse = () => {\r\n\r\n this.setCustomProperty()\r\n this.collapsed(!this.collapsed())\r\n }\r\n\r\n\r\n //** _CONSTRUCTOR\r\n constructor(params: SegmentFilterParams) {\r\n\r\n this.base = setBase(params)\r\n\r\n this.level = (params.level ?? -1) + 1\r\n\r\n this.level <= 0 &&\r\n this.collapsed(params.rootCollapsed ? ko.unwrap(params.rootCollapsed) : this.base.rootCollapsed)\r\n\r\n if (params.segmentGroup)\r\n this.segmentGroup(ko.unwrap(params.segmentGroup))\r\n else {\r\n if (subscriptions[this.base.cid])\r\n subscriptions[this.base.cid].dispose()\r\n\r\n this.segmentGroup(this.base.segmentGroup())\r\n subscriptions[this.base.cid] = this.base.segmentGroup.subscribe((val: any) => {\r\n\r\n this.segmentGroup(val)\r\n\r\n this.collapsed(this.level <= 0 ? ko.unwrap(params.rootCollapsed) : this.base.rootCollapsed)\r\n })\r\n }\r\n }\r\n\r\n\r\n removeSegment = (segment: ko_AnySegment_Union | any, context: any) => {\r\n\r\n segment.dispose()\r\n context.segmentGroup().Segments.remove(segment)\r\n }\r\n\r\n addDataPointCondition = (dataPointSegment: any) => {\r\n dataPointSegment.Conditions.push(newDataPointCondition())\r\n }\r\n\r\n removeDataPointCondition = (dataPointSegment: any, condition: any) => {\r\n dataPointSegment.Conditions.remove(condition)\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nclass SegmentFilterDropdown {\r\n\r\n cid = uid()\r\n base: BaseSegmentFilter\r\n segmentGroup: KnockoutObservable = ko.observable()\r\n segmentTypes = segmentTypes\r\n\r\n\r\n //** _CONSTRUCTOR\r\n constructor(params: any) {\r\n\r\n this.base = setBase(params)\r\n this.segmentGroup(ko.unwrap(params.segmentGroup))\r\n }\r\n\r\n addSegment = (segmentType: string) => {\r\n\r\n let group = this.segmentGroup() ? this.segmentGroup() : this.base.segmentGroup()\r\n group.Segments.push(newSegment(segmentType, this.base.callback, this.segmentGroup()))\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nko.components.register('segment-filter', {\r\n viewModel: SegmentFilter,\r\n template: { path: 'App/Shared/SegmentFilter/SegmentFilter' }\r\n})\r\n\r\nko.components.register('segment-filter-dropdown', {\r\n viewModel: { useSlots: SegmentFilterDropdown },\r\n template: { path: 'App/Shared/SegmentFilter/SegmentFilterDropdown' }\r\n})\r\n","const __WEBPACK_NAMESPACE_OBJECT__ = ko;","\r\n\r\nimport { components, bindingHandlers } from 'knockout'\r\n\r\n// utils\r\nimport { debounce, escapeRegExpString, newDomElement, proxySet } from '@utils/Misc'\r\n\r\n\r\n\r\n\r\n\r\n// from url, no jquery\r\nconst fromPathTemplateLoader = {\r\n loadTemplate: (name: string, config: any, callback: (result: Node[]) => void) => {\r\n\r\n if (config.path) {\r\n\r\n let { path, ext = '', maxCacheAge, route = '/template', } = config,\r\n query = `?path=${ path }${ ext ? '?ext=' + ext : '' }${ maxCacheAge ? '?maxCacheAge=' + maxCacheAge : '' }`,\r\n markupString = '[[Not Loaded]]'\r\n\r\n fetch(route + query)\r\n .then(async (res: Response) => {\r\n if (res.status === 200)\r\n markupString = await res.text()\r\n })\r\n .catch((err: any) => {\r\n throw new Error('Failed to load template', { cause: err })\r\n })\r\n .finally(() => {\r\n components.defaultLoader.loadTemplate(name, markupString, callback)\r\n })\r\n }\r\n else\r\n callback(null)\r\n }\r\n}\r\n\r\ncomponents.loaders.unshift(fromPathTemplateLoader)\r\n\r\n\r\n// replaces element in template with $componentTemplateNodes | ComponentInfo.templateNodes\r\n// TODO: named slots. see behaviour in vue\r\nconst useSlots = (rootEl: HTMLElement, nodes: Node[]) => {\r\n rootEl.querySelector('slot')?.replaceWith(...nodes)\r\n},\r\n useSlotsLoader = {\r\n loadViewModel: (name: string, config: any, callback: (result: any) => void) => {\r\n\r\n if (config.useSlots) {\r\n\r\n let viewModelConstructor = (params: any, root: ExtendedComponentInfo) => {\r\n\r\n root.templateNodes.length > 0 &&\r\n useSlots(root.element, root.templateNodes)\r\n\r\n return new config.useSlots(params, root.element)\r\n }\r\n\r\n components.defaultLoader.loadViewModel(name, { createViewModel: viewModelConstructor }, callback)\r\n }\r\n else\r\n callback(null)\r\n }\r\n }\r\n\r\ncomponents.loaders.unshift(useSlotsLoader)\r\n\r\n\r\n\r\n\r\n\r\n\r\n// simplified element references registration\r\nbindingHandlers.ref = {\r\n init: (el, val, bindings, _, ctx) => {\r\n let name = val(),\r\n setup = bindings().refSetup\r\n\r\n if (ctx.$component) {\r\n ctx.$component.$refs ||= {}\r\n ctx.$component.$refs[ name ] = el\r\n }\r\n\r\n setup && setup(name, el)\r\n }\r\n}\r\n\r\n\r\n// mark invalid inputs\r\nbindingHandlers.pw_validate = {\r\n update: (el, val, _, __, ctx) => {\r\n let valid = val().valid\r\n\r\n !ctx.$component.base.showInvalid()\r\n || typeof valid === 'function'\r\n && valid()\r\n ? el.classList.remove('input-invalid')\r\n : el.classList.add('input-invalid')\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst autocomplete_cache: {\r\n [ k: string ]: {\r\n values: string[],\r\n timestamp: number\r\n }\r\n} = {},\r\n/** runtime cache? -> session storage? -> fetch -> runtime cache -> session starage */\r\nautocomplete_get = (val: string, endpoint: string, property: number, datatype:string, key:string, len: number = 10, expire: number = 300_000) => {\r\n let cachekey = `prop[${ property }]_datatype[${datatype}]_key[${key}]_key[${ val?.replace(/\\s/g, '_') }]`\r\n \r\n // see if cached results exist in storage\r\n if (!autocomplete_cache[ cachekey ]) {\r\n let storageEntry = sessionStorage.getItem(cachekey)\r\n \r\n if (storageEntry)\r\n autocomplete_cache[ cachekey ] = JSON.parse(storageEntry)\r\n }\r\n\r\n if (!autocomplete_cache[ cachekey ] || autocomplete_cache[ cachekey ].timestamp - Date.now() > expire) {\r\n if (!val) return []\r\n\r\n // TODO: error handling\r\n return new Promise((res: any, rej: any) => {\r\n debounce(() => {\r\n let query ='?';\r\n query +=property?`property=${ property }`:'';\r\n query +=datatype!=undefined?`&type=${ datatype }`:'';\r\n query +=key?`&key=${ key }`:'';\r\n \r\n query +=`&value=${ val }&take=${ len }`\r\n\r\n $.fn.application.get(endpoint + query)\r\n .then((result: string[]) => {\r\n \r\n let mapped = [];\r\n for(var ix=0;ixitem.toUpperCase().indexOf(val.toUpperCase())>-1);\r\n // store results (including empty)\r\n autocomplete_cache[ cachekey ] = {\r\n values: mapped,\r\n timestamp: Date.now()\r\n }\r\n sessionStorage.setItem(cachekey, JSON.stringify(autocomplete_cache[ cachekey ]))\r\n\r\n res(mapped)\r\n })\r\n\r\n }, { delay: 200 }) // needs to be enought to not spam the api \r\n })\r\n }\r\n else {\r\n return autocomplete_cache[ cachekey ].values\r\n }\r\n}\r\n\r\n\r\nexport const assertPersmissionLevel = (scopes: { Feature: string, Permission: number, Executable: boolean }[], req_permissions: string[], req_level: number): boolean => {\r\n for (let scope of scopes)\r\n if (req_permissions.indexOf(scope.Feature) + 1 && scope.Permission < req_level)\r\n return false\r\n\r\n return true\r\n}\r\n\r\nconst REQ_PERMISSIONS = [ 'Any', 'Issues', 'Sms', 'Contacts', 'Surveys', 'Events', 'Tags', 'Lists', 'Segments', 'Journeys' ],\r\n REQ_LEVEL = 1\r\nbindingHandlers.autocomplete = {\r\n init: (el, val: KnockoutComputed<{ props, property, datatype, key, endpoint, listLength, expireCache, rootContainer: HTMLElement | any, container: HTMLElement | any, }>, bindings, _, ctx) => {\r\n\r\n let user = ko.unwrap(ctx.$root?.CurrentUser ?? viewModel.CurrentUser)\r\n if (!assertPersmissionLevel(ko.mapping.toJS(user.AuthorizedForScopes), REQ_PERMISSIONS, REQ_LEVEL))\r\n return\r\n\r\n const { props, property, datatype, key, endpoint, listLength = 10, expireCache = 300_000, rootContainer, container } = val(),\r\n { value } = bindings();\r\n console.log('autocomplete init',property,datatype,key,endpoint);\r\n \r\n let compositeKey = `${!!property?'prop'+property():''}`;\r\n compositeKey += `${!!datatype?'dt'+datatype():''}`;\r\n compositeKey +=`${!!key?'k'+key():''}`;\r\n compositeKey +=`${'ep' +endpoint}`;\r\n console.log('compositeKey',compositeKey);\r\n let indicator = newDomElement('div', { classes: 'working-indicator btm' }),\r\n list = rootContainer.dropdown?.list ?? {\r\n key: compositeKey,\r\n el: newDomElement('div'),\r\n items: []\r\n }\r\n\r\n\r\n let dropdown = rootContainer.dropdown\r\n\r\n if (!dropdown || !rootContainer.hasChildNodes(dropdown)) {\r\n\r\n let newDropdown = newDomElement('div', {\r\n classes: 'autocomplete-dropdown',\r\n })\r\n \r\n\r\n newDropdown.appendChild(list.el)\r\n newDropdown[ 'list' ] = list\r\n\r\n // TODO: allow definition of container in options\r\n rootContainer.appendChild(newDropdown)\r\n rootContainer.dropdown =\r\n dropdown = newDropdown\r\n }\r\n el.insertAdjacentElement('afterend', indicator)\r\n\r\n\r\n /** sets dropdown position css custom properties */\r\n const updateCustomProps = () => {\r\n\r\n let ac_width = el.offsetWidth\r\n if (ac_width !== dropdown.width_lastValue) {\r\n\r\n dropdown.width_lastValue = ac_width\r\n\r\n rootContainer.setAttribute('style',\r\n `--ac-width: ${ ac_width }px`)\r\n }\r\n\r\n\r\n let elRect = el.getBoundingClientRect(),\r\n containerRect = rootContainer.getBoundingClientRect(),\r\n dd_height = dropdown.offsetHeight,\r\n dd_top = (elRect.bottom + dd_height >= window.innerHeight ? elRect.top - dd_height : elRect.bottom) - containerRect.top,\r\n dd_left = elRect.left - containerRect.left\r\n\r\n\r\n if (dd_top !== dropdown.top_lastValue || dd_left !== dropdown.left_lastValue) {\r\n\r\n dropdown.top_lastValue = dd_top\r\n dropdown.left_lastValue = dd_left\r\n\r\n rootContainer.setAttribute('style',\r\n `--ac-width: ${ ac_width }px;\r\n --ac-dropdown-top: ${ dd_top }px;\r\n --ac-dropdown-left: ${ dd_left }px`)\r\n }\r\n }\r\n\r\n\r\n // state handlers\r\n const setListItems = async (val: string) => {\r\n let prop = !!property?property():null;\r\n let scopetype = !!datatype?datatype():null;\r\n let scopekey = !!key?key():null;\r\n if (isNaN(prop)) return\r\n\r\n // pre-fetch filter might yield and empty list\r\n if (compositeKey === list.property && val && list.items.length)\r\n state.open ||= true\r\n else\r\n state.open &&= false\r\n\r\n\r\n state.mark = 0\r\n list.items[ state.mark ]?.el.classList.add('marked') // mark in case state value is unchanged\r\n val && indicator.classList.add('active')\r\n\r\n\r\n // important to not set any listeners or add any references to the list & list items\r\n // so that discarded elements get garbage collected. alt: reuse, reduce, recycle\r\n let newList = newDomElement('div'),\r\n results = await autocomplete_get(val, endpoint, prop, scopetype,scopekey, listLength, expireCache)\r\n\r\n list.items = []\r\n for (let i = 0; i < results.length; i++) {\r\n let el = newDomElement('div', { classes: 'autocomplete-option' })\r\n\r\n el.innerText = results[ i ]\r\n el.dataset.slot = i.toString()\r\n i === state.mark &&\r\n el.classList.add('marked')\r\n\r\n list.property = compositeKey;\r\n list.items.push({\r\n el,\r\n value: results[ i ]\r\n })\r\n\r\n newList.appendChild(el)\r\n }\r\n\r\n\r\n // reflect state after fetch results, !! val is the same as before await\r\n if (el === document.activeElement && state.value && list.items.length)\r\n state.open ||= true\r\n else\r\n state.open &&= false\r\n\r\n dropdown.replaceChild(newList, dropdown.list.el)\r\n dropdown.list.el = newList // clear reference to the old list\r\n\r\n indicator.classList.remove('active')\r\n\r\n updateCustomProps()\r\n }\r\n\r\n\r\n const state_handlers = {\r\n open: (val: boolean) => {\r\n val ? dropdown.classList.add('dis-bl')\r\n : dropdown.classList.remove('dis-bl')\r\n },\r\n value: async (val: string) => {\r\n\r\n // remove non-matching & fully matching entries from list pre-fetch\r\n let regexp = new RegExp('^' + escapeRegExpString(val), 'i')\r\n for (let i = 0; i < list.items.length; i++) {\r\n if (!regexp.test(list.items[ i ].value) || val === list.items[ i ].value.trim()) {\r\n list.items[ i ].el.remove()\r\n list.items.splice(i--, 1)\r\n }\r\n }\r\n\r\n\r\n setListItems(val)\r\n value(val)\r\n },\r\n mark: (val: number) => {\r\n list.items[ state.mark ]?.el.classList.remove('marked')\r\n list.items[ val ]?.el.classList.add('marked')\r\n }\r\n }\r\n\r\n\r\n // state reactive props\r\n const state = proxySet({\r\n open: false,\r\n value: value(),\r\n mark: 0\r\n }, state_handlers)\r\n\r\n //\r\n // property.computed ||= ko.computed({\r\n // read: () => {\r\n // if (typeof property.old === 'undefined')\r\n // property.old = property()\r\n //\r\n // // reset input value on input type change\r\n // if (typeof property() !== 'undefined' && props[ property() ]?.InputType !== props[ property.old ]?.InputType) {\r\n // property.old = property()\r\n //\r\n // value(state.value = '')\r\n // }\r\n // },\r\n // disposeWhenNodeIsRemoved: container\r\n // })\r\n\r\n\r\n\r\n const updateValue = () => {\r\n state.value = list.items[ state.mark ].value\r\n }\r\n\r\n // event methods\r\n const handleInput = () => {\r\n if (list.items.length)\r\n state.open ||= true\r\n\r\n state.value = el.value\r\n }\r\n\r\n const handleListActions = (ev: KeyboardEvent) => {\r\n if (ev.key === 'ArrowUp') {\r\n ev.preventDefault()\r\n\r\n state.mark > 0 && --state.mark\r\n }\r\n\r\n if (ev.key === 'ArrowDown') {\r\n ev.preventDefault()\r\n\r\n state.mark < list.items.length-1 && ++state.mark\r\n }\r\n\r\n if (ev.key === 'Enter' && state.value) {\r\n ev.preventDefault()\r\n\r\n updateValue()\r\n }\r\n }\r\n\r\n const handleHover = (ev: MouseEvent & { target: HTMLElement }) => {\r\n ev.stopPropagation()\r\n\r\n let slot = parseInt(ev.target.dataset.slot)\r\n\r\n if (isNaN(slot)) return\r\n\r\n if (slot !== state.mark)\r\n state.mark = slot\r\n }\r\n\r\n\r\n // events\r\n el.addEventListener('focus', () => {\r\n\r\n state.value &&\r\n setListItems(state.value)\r\n\r\n el.addEventListener('input', handleInput)\r\n el.addEventListener('keydown', handleListActions)\r\n el.addEventListener('mousedown', updateCustomProps)\r\n dropdown.addEventListener('mousedown', updateValue)\r\n dropdown.addEventListener('mousemove', handleHover)\r\n\r\n\r\n el.addEventListener('blur', () => {\r\n el.blur() // assert blur, case interaction outside of document\r\n state.open &&= false\r\n\r\n el.removeEventListener('input', handleInput)\r\n el.removeEventListener('keydown', handleListActions)\r\n el.removeEventListener('mousedown', updateCustomProps)\r\n dropdown.removeEventListener('mousedown', updateValue)\r\n dropdown.removeEventListener('mousemove', handleHover)\r\n\r\n })\r\n })\r\n }\r\n}","// components\r\nimport '@shared/SegmentFilter/SegmentFilter'\r\nimport '@pluginsCustom/knockout'\r\n\r\ndeclare var alertSuccess: any\r\n\r\nclass SegmentEditor {\r\n\r\n segment: KnockoutObservable = ko.observable()\r\n\r\n // Result\r\n loadingContacts: KnockoutObservable = ko.observable(false)\r\n contacts: KnockoutObservableArray = ko.observableArray([])\r\n contactCount: KnockoutObservable = ko.observable(0);\r\n totalContactCount: KnockoutObservable = ko.observable(-1)\r\n segmentPercentage: KnockoutComputed = ko.computed(() => {\r\n if (this.contactCount() <= 0 || this.totalContactCount() <= 0)\r\n return 0\r\n return this.contactCount() / this.totalContactCount() * 100\r\n })\r\n executionTime: KnockoutObservable = ko.observable()\r\n canSave: KnockoutComputed = ko.computed(() => {\r\n return this.segment() != null\r\n })\r\n\r\n //** _CONSTRUCTOR\r\n constructor(params: BaseSegmentFilterParams = {}) {\r\n\r\n $.fn.application.get('/Segments/' + params.segmentId).done(segment => {\r\n this.segment(ko.mapping.fromJS(segment));\r\n })\r\n\r\n\r\n }\r\n\r\n validationMethods: Func[] = []\r\n valid = () => {\r\n if (!!this.validationMethods.length)\r\n for (let func of this.validationMethods)\r\n if (!func()[0])\r\n return false\r\n\r\n return true\r\n }\r\n save = () => {\r\n if (!this.valid()) return\r\n\r\n $.fn.application.post('/Segments/' + this.segment().SegmentId(), ko.mapping.toJSON(this.segment, {ignore: ['dispose', 'watcher']}), null, {contentType: 'application/json'})\r\n .then((data: any) => {\r\n alertSuccess($.fn.application.lang.alertIssueSavedHeader, $.fn.application.lang.alertSegmentSavedBody);\r\n })\r\n }\r\n previewContacts = () => {\r\n if (!this.valid()) return false\r\n\r\n if (this.totalContactCount() < 0)\r\n $.fn.application.get('/Segments/TotalContactCount', this.totalContactCount)\r\n\r\n var segment = ko.mapping.toJS(this.segment(), {ignore: ['dispose', 'watcher']})\r\n this.loadingContacts(true);\r\n return $.fn.application.post('/Segments/Preview', JSON.stringify(segment), null, {contentType: 'application/json'})\r\n .done((result: PagedResult) => {\r\n this.contactCount(result.Count)\r\n this.contacts(result.Result)\r\n this.executionTime(result.ExecutionTime)\r\n this.loadingContacts(false);\r\n })\r\n }\r\n\r\n exportContacts = () => {\r\n if (!this.valid()) return\r\n\r\n if (this.totalContactCount() < 0)\r\n $.fn.application.get('/Segments/TotalContactCount', this.totalContactCount)\r\n\r\n var segment = ko.mapping.toJS(this.segment(), {ignore: ['dispose', 'watcher']})\r\n $.fn.application.post('/Segments/GetContactsFromSegment?$format=excel', JSON.stringify(segment), null, {contentType: 'application/json'})\r\n .done((result: any) => {\r\n document.location = result.Url;\r\n })\r\n }\r\n\r\n}\r\n\r\n\r\nko.components.register('segment-editor', {\r\n viewModel: SegmentEditor,\r\n template: {path: 'App/Segments/SegmentEditor'}\r\n})"],"names":["___CSS_LOADER_EXPORT___","module","cssWithMappingToString","list","item","content","needLayer","modules","media","dedupe","supports","layer","alreadyImportedModules","k","id","_k","cssMapping","base64","data","sourceMapping","stylesInDOM","getIndexByIdentifier","identifier","result","i","modulesToDom","options","idCountMap","identifiers","count","indexByIdentifier","obj","updater","addElementStyle","api","newObj","lastIdentifiers","newList","index","newLastIdentifiers","_i","_identifier","_index","memo","getTarget","target","styleTarget","insertBySelector","insert","style","insertStyleElement","element","setAttributesWithoutAttributes","styleElement","nonce","apply","css","sourceMap","removeStyleElement","domAPI","styleTagTransform","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","exports","definition","key","prop","update","PropertyOperator","proto_watch","callback","handler","ctx","proxy","revoke","cache","changes","val","handler_SegmentApply","tgt","_this","arg","subscriptionCallback","setValidationProps","segment","Type","Property","Operator","Value","MinAge","MaxAge","TagIds","SmsMessageId","IssueId","TimeSpanSince","ListId","SegmentId","EventId","Statuses","Types","ObjectId","SurveyId","QuestionId","QuestionOptionId","TimeSpan","Conditions","validate","v","min","max","segments","Bool","Name","Segments","HasTags","ReceivedMailing","Received","InList","HasReceivedEmail","InSegment","HasStatus","HasReceivedSms","HasInteractions","HasResponded","segmentExtrasFactory","HasDataPoints","Key","segmentTypes","newDataPointCondition","newSegment","segmentType","props","debounceTimeout","debounce","delay","toCamelCase","repUpper","toPascalCase","toKebabCase","repDash","stringTo","uid","l","ts","escapeRegExpString","string","newDomElement","tag","el","classes","inlineStyles","proxySet","handlers","p","rs_observer","entries","entry","BaseSegmentFilter","pw_processor","segmentId","seg","params","subscriptions","toDelete","segments_len","isValid","quiet","processor","allOk","len","traverse","valid","instances","setBase","base","height","name","context","dataPointSegment","condition","SegmentFilterDropdown","fromPathTemplateLoader","config","path","ext","maxCacheAge","route","query","markupString","res","err","useSlots","rootEl","nodes","useSlotsLoader","viewModelConstructor","root","bindings","_","setup","__","autocomplete_cache","autocomplete_get","endpoint","property","datatype","expire","cachekey","storageEntry","rej","mapped","ix","assertPersmissionLevel","scopes","req_permissions","req_level","scope","REQ_PERMISSIONS","REQ_LEVEL","user","listLength","expireCache","rootContainer","container","value","compositeKey","indicator","dropdown","newDropdown","updateCustomProps","ac_width","elRect","containerRect","dd_height","dd_top","dd_left","setListItems","scopetype","scopekey","state","results","state_handlers","regexp","updateValue","handleInput","handleListActions","ev","handleHover","slot","SegmentEditor","func"],"sourceRoot":""}