public/js/atk-vue-query-builder.min.js

Summary

Maintainability
A
0 mins
Test Coverage
"use strict";(self.webpackChunkatk=self.webpackChunkatk||[]).push([[662],{30901:(e,n,t)=>{t.d(n,{Z:()=>l});const l={name:"AtkDatePicker",template:'\n        <FlatpickrPicker\n            :config="flatPickr"\n            :modelValue="getFlatpickrValue(modelValue)"\n            @update:modelValue="onUpdate"\n        />',props:["config","modelValue"],data:function(){const e={...this.config};return e.defaultDate&&!this.modelValue?e.defaultDate=new Date:this.modelValue&&(e.defaultDate=this.modelValue),e.locale||(e.locale=flatpickr.l10ns.default),{flatPickr:e}},emits:["setDefault"],mounted:function(){!this.modelValue&&this.flatPickr.defaultDate&&this.onUpdate(this.flatPickr.defaultDate instanceof Date?flatpickr.formatDate(this.config.defaultDate,this.config.dateFormat):this.flatPickr.defaultDate)},methods:{getFlatpickrValue:function(e){return e},onUpdate:function(e){this.$emit("update:modelValue",e)}}}},49880:(e,n,t)=>{t.d(n,{Z:()=>l});t(93714),t(22625),t(70984);const l={name:"AtkLookup",template:'\n        <SuiDropdown\n            v-bind="dropdownProps"\n            ref="drop"\n            :modelValue="getDropdownValue(modelValue)"\n            @update:modelValue="onUpdate"\n        ></SuiDropdown>',props:["config","modelValue","optionalValue"],data:function(){const{url:e,reference:n,...t}=this.config;return t.selection=!0,{dropdownProps:t,url:e||null,field:n,query:"",temp:""}},mounted:function(){this.optionalValue&&(this.dropdownProps.options=Array.isArray(this.optionalValue)?this.optionalValue:[this.optionalValue])},emits:["update:modelValue"],methods:{getDropdownValue:function(e){return this.dropdownProps.options.find((n=>n.value===e))},onUpdate:function(e){this.$emit("update:modelValue",e.value)}}}},95951:(e,n,t)=>{t.d(n,{Z:()=>i});var l=t(51864),r=t.n(l),u=t(60352),o=t.n(u)()(r());o.push([e.id,"\n.vue-query-builder .vqb-group .rule-actions {\n  margin-bottom: 20px;\n}\n.vue-query-builder .vqb-rule {\n  margin-top: 15px;\n  margin-bottom: 15px;\n  background-color: #f5f5f5;\n  border-color: #ddd;\n  padding: 15px;\n}\n.vue-query-builder .vqb-group.depth-1 .vqb-rule,\n.vue-query-builder .vqb-group.depth-2 {\n  border-left: 2px solid #8bc34a;\n}\n.vue-query-builder .vqb-group.depth-2 .vqb-rule,\n.vue-query-builder .vqb-group.depth-3 {\n  border-left: 2px solid #00bcd4;\n}\n.vue-query-builder .vqb-group.depth-3 .vqb-rule,\n.vue-query-builder .vqb-group.depth-4 {\n  border-left: 2px solid #ff5722;\n}\n.vue-query-builder .close {\n  opacity: 1;\n  color: rgb(150, 150, 150);\n}\n@media (min-width: 768px) {\n.vue-query-builder .vqb-rule.form-inline .form-group {\n    display: block;\n}\n}\n","",{version:3,sources:["webpack://./node_modules/vue-query-builder/src/layouts/Bootstrap5/Bootstrap5Group.vue"],names:[],mappings:";AA0FA;EACE,mBAAmB;AACrB;AAEA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,yBAAyB;EACzB,kBAAkB;EAClB,aAAa;AACf;AAEA;;EAEE,8BAA8B;AAChC;AAEA;;EAEE,8BAA8B;AAChC;AAEA;;EAEE,8BAA8B;AAChC;AAEA;EACE,UAAU;EACV,yBAAyB;AAC3B;AAEA;AACE;IACE,cAAc;AAChB;AACF",sourcesContent:['<template>\n  \x3c!-- eslint-disable vue/no-v-html --\x3e\n  <div class="vqb-group card" :class="\'depth-\' + depth.toString()">\n    <div class="vqb-group-heading card-header">\n      <div class="match-type-container row gy-2 gx-3 align-items-center">\n        <div class="col-auto">\n          <label class="me-2" for="vqb-match-type">\n            {{ labels.matchType }}\n          </label>\n        </div>\n        <div class="col-auto">\n          <select\n            id="vqb-match-type"\n            v-model="query.logicalOperator"\n            class="form-select"\n          >\n            <option\n              v-for="label in labels.matchTypes"\n              :key="label.id"\n              :value="label.id"\n            >\n              {{ label.label }}\n            </option>\n          </select>\n        </div>\n        <div class="col-auto" v-if="depth > 1">\n          <button\n            type="button"\n            class="btn-close btn-small"\n            @click="remove"\n          ></button>\n        </div>\n      </div>\n    </div>\n\n    <div class="vqb-group-body card-body">\n      <div class="rule-actions">\n        <div class="row gy-2 gx-3 align-items-center">\n          <div class="col-auto">\n            <select\n              :value="selectedRuleId"\n              @input="updateRule"\n              class="form-select me-2"\n            >\n              <option v-for="rule in rules" :key="rule.id" :value="rule.id">\n                {{ rule.label }}\n              </option>\n            </select>\n          </div>\n          <div class="col-auto">\n            <button\n              type="button"\n              class="btn btn-secondary me-2"\n              @click="addRule"\n            >\n              {{ labels.addRule }}\n            </button>\n          </div>\n          <div class="col-auto">\n            <button\n              v-if="depth < maxDepth"\n              type="button"\n              class="btn btn-secondary"\n              @click="addGroup"\n            >\n              {{ labels.addGroup }}\n            </button>\n          </div>\n        </div>\n      </div>\n\n      <query-builder-children v-bind="$props" />\n    </div>\n  </div>\n</template>\n\n<script>\nimport QueryBuilderGroup from "../../components/QueryBuilderGroup";\nimport QueryBuilderChildren from "../../components/QueryBuilderChildren";\nexport default {\n  name: "QueryBuilderGroup",\n\n  components: { QueryBuilderChildren },\n\n  extends: QueryBuilderGroup,\n  methods: {},\n};\n<\/script>\n\n<style>\n.vue-query-builder .vqb-group .rule-actions {\n  margin-bottom: 20px;\n}\n\n.vue-query-builder .vqb-rule {\n  margin-top: 15px;\n  margin-bottom: 15px;\n  background-color: #f5f5f5;\n  border-color: #ddd;\n  padding: 15px;\n}\n\n.vue-query-builder .vqb-group.depth-1 .vqb-rule,\n.vue-query-builder .vqb-group.depth-2 {\n  border-left: 2px solid #8bc34a;\n}\n\n.vue-query-builder .vqb-group.depth-2 .vqb-rule,\n.vue-query-builder .vqb-group.depth-3 {\n  border-left: 2px solid #00bcd4;\n}\n\n.vue-query-builder .vqb-group.depth-3 .vqb-rule,\n.vue-query-builder .vqb-group.depth-4 {\n  border-left: 2px solid #ff5722;\n}\n\n.vue-query-builder .close {\n  opacity: 1;\n  color: rgb(150, 150, 150);\n}\n\n@media (min-width: 768px) {\n  .vue-query-builder .vqb-rule.form-inline .form-group {\n    display: block;\n  }\n}\n</style>\n'],sourceRoot:""}]);const i=o},56418:(e,n,t)=>{t.d(n,{Z:()=>i});var l=t(51864),r=t.n(l),u=t(60352),o=t.n(u)()(r());o.push([e.id,"\n.vue-query-builder .vqb-group .rule-actions {\n        margin-bottom: 0px;\n}\n.vue-query-builder .vqb-rule {\n        margin-top: 0px;\n        margin-bottom: 0px;\n        padding: 0px;\n}\n.atk-qb-select, .ui.form select.atk-qb-select {\n       padding: 2px 6px 4px 4px;\n}\n.atk-qb-remove {\n        cursor: pointer;\n        color: rgba(0, 0, 0, 0.6);\n}\n.ui.selection.dropdown.atk-qb-rule-select {\n        background-color: rgba(0, 0, 0, 0);\n}\n.ui.selection.dropdown .atk-qb-rule-select-menu {\n        width: max-content;\n        z-index: 1000;\n}\n.vbq-group-heading > .ui.grid > .column:not(.row) {\n        padding-bottom: 0.5em;\n        padding-top: 0.5em;\n}\n.vue-query-builder .ui.card.compact {\n        margin-top: 0.5em;\n        margin-bottom: 0.5em;\n}\n.vue-query-builder .ui.card.fitted {\n        margin-top: 0em;\n        margin-bottom: 0em;\n}\n.vue-query-builder .ui.card.padded {\n        margin-top: 1em;\n        margin-bottom: 1em;\n}\n.ui.card > .vbq-group-heading.content {\n        background-color: #f3f4f5;\n}\n.vue-query-builder .vqb-group.depth-1 .vqb-rule,\n    .vue-query-builder .vqb-group.depth-2 {\n        border-left: 2px solid #8bc34a;\n}\n.vue-query-builder .vqb-group.depth-2 .vqb-rule,\n    .vue-query-builder .vqb-group.depth-3 {\n        border-left: 2px solid #00bcd4;\n}\n.vue-query-builder .vqb-group.depth-3 .vqb-rule,\n    .vue-query-builder .vqb-group.depth-4 {\n        border-left: 2px solid #ff5722;\n}\n","",{version:3,sources:["webpack://./src/vue-components/query-builder/fomantic-ui-group.component.vue"],names:[],mappings:";AAuGI;QACI,kBAAkB;AACtB;AAEA;QACI,eAAe;QACf,kBAAkB;QAClB,YAAY;AAChB;AAEA;OACG,wBAAwB;AAC3B;AACA;QACI,eAAe;QACf,yBAAyB;AAC7B;AACA;QACI,kCAAkC;AACtC;AACA;QACI,kBAAkB;QAClB,aAAa;AACjB;AACA;QACI,qBAAqB;QACrB,kBAAkB;AACtB;AACA;QACI,iBAAiB;QACjB,oBAAoB;AACxB;AACA;QACI,eAAe;QACf,kBAAkB;AACtB;AACA;QACI,eAAe;QACf,kBAAkB;AACtB;AACA;QACI,yBAAyB;AAC7B;AACA;;QAEI,8BAA8B;AAClC;AACA;;QAEI,8BAA8B;AAClC;AACA;;QAEI,8BAA8B;AAClC",sourcesContent:['<template>\n    <div\n        class="vqb-group ui fluid card"\n        :class="[labels.spaceRule, \'depth-\' + depth]"\n    >\n        <div\n            class="vbq-group-heading content"\n            :class="\'depth-\' + depth"\n        >\n            <div class="ui grid">\n                <div class="fourteen wide column">\n                    <div class="ui horizontal list">\n                        <div class="item">\n                            <h4 class="ui inline">\n                                {{ labels.matchType }}\n                            </h4>\n                        </div>\n                        <div class="item">\n                            <select\n                                v-model="query.logicalOperator"\n                                class="atk-qb-select"\n                            >\n                                <option\n                                    v-for="label in labels.matchTypes"\n                                    :key="label.id"\n                                    :value="label.id"\n                                >\n                                    {{ label.label }}\n                                </option>\n                            </select>\n                        </div>\n                        <div class="item">\n                            <div class="rule-actions">\n                                <div>\n                                    <SuiDropdown\n                                        :text="labels.addRule"\n                                        class="ui mini basic button atk-qb-rule-select"\n                                        selection\n                                    >\n                                        <SuiDropdownMenu class="atk-qb-rule-select-menu">\n                                            <SuiDropdownItem\n                                                v-for="rule in rules"\n                                                :key="rule.id"\n                                                :text="rule.label"\n                                                @click="addNewRule(rule.id)"\n                                            />\n                                        </SuiDropdownMenu>\n                                    </SuiDropdown>\n                                    <button\n                                        v-if="depth < maxDepth"\n                                        type="button"\n                                        class="ui mini basic button"\n                                        @click="addGroup"\n                                    >\n                                        {{ labels.addGroup }}\n                                    </button>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class="two wide right aligned column">\n                    <i\n                        v-if="depth > 1"\n                        class="atk-qb-remove"\n                        :class="labels.removeGroupClass"\n                        @click="remove"\n                    />\n                </div>\n            </div>\n        </div>\n        <div class="vbq-group-body content">\n            <QueryBuilderChildren v-bind="$props" />\n        </div>\n    </div>\n</template>\n\n<script>\nimport VueQueryBuilderGroup from \'vue-query-builder/src/components/QueryBuilderGroup\';\n\nexport default {\n    name: \'QueryBuilderGroup\',\n    extends: VueQueryBuilderGroup,\n    data: function () {\n        return {\n            selectedSuiRule: null,\n        };\n    },\n    methods: {\n        /**\n         * Add a new rule via Dropdown item.\n         */\n        addNewRule: function (ruleId) {\n            this.selectedRule = this.rules.find((rule) => rule.id === ruleId);\n            if (this.selectedRule) {\n                this.addRule();\n            }\n        },\n    },\n};\n<\/script>\n\n<style>\n    .vue-query-builder .vqb-group .rule-actions {\n        margin-bottom: 0px;\n    }\n\n    .vue-query-builder .vqb-rule {\n        margin-top: 0px;\n        margin-bottom: 0px;\n        padding: 0px;\n    }\n\n    .atk-qb-select, .ui.form select.atk-qb-select {\n       padding: 2px 6px 4px 4px;\n    }\n    .atk-qb-remove {\n        cursor: pointer;\n        color: rgba(0, 0, 0, 0.6);\n    }\n    .ui.selection.dropdown.atk-qb-rule-select {\n        background-color: rgba(0, 0, 0, 0);\n    }\n    .ui.selection.dropdown .atk-qb-rule-select-menu {\n        width: max-content;\n        z-index: 1000;\n    }\n    .vbq-group-heading > .ui.grid > .column:not(.row) {\n        padding-bottom: 0.5em;\n        padding-top: 0.5em;\n    }\n    .vue-query-builder .ui.card.compact {\n        margin-top: 0.5em;\n        margin-bottom: 0.5em;\n    }\n    .vue-query-builder .ui.card.fitted {\n        margin-top: 0em;\n        margin-bottom: 0em;\n    }\n    .vue-query-builder .ui.card.padded {\n        margin-top: 1em;\n        margin-bottom: 1em;\n    }\n    .ui.card > .vbq-group-heading.content {\n        background-color: #f3f4f5;\n    }\n    .vue-query-builder .vqb-group.depth-1 .vqb-rule,\n    .vue-query-builder .vqb-group.depth-2 {\n        border-left: 2px solid #8bc34a;\n    }\n    .vue-query-builder .vqb-group.depth-2 .vqb-rule,\n    .vue-query-builder .vqb-group.depth-3 {\n        border-left: 2px solid #00bcd4;\n    }\n    .vue-query-builder .vqb-group.depth-3 .vqb-rule,\n    .vue-query-builder .vqb-group.depth-4 {\n        border-left: 2px solid #ff5722;\n    }\n</style>\n'],sourceRoot:""}]);const i=o},42544:(e,n,t)=>{t.d(n,{Z:()=>i});var l=t(51864),r=t.n(l),u=t(60352),o=t.n(u)()(r());o.push([e.id,"\n.ui.input.atk-qb > input, .ui.input.atk-qb span > input, .ui.form .input.atk-qb {\n        padding: 6px;\n}\n.ui.grid > .row.atk-qb {\n        padding: 8px 0px;\n        min-height: 62px;\n}\n.inline.fields.atk-qb, .ui.form .inline.fields.atk-qb {\n        margin: 0px;\n}\n.atk-qb-date-picker {\n        border: 1px solid rgba(34, 36, 38, 0.15);\n}\ninput[type=input].atk-qb-date-picker:focus {\n        border-color: #85b7d9;\n}\n.ui.card.vqb-rule > .content {\n        padding-bottom: 0.5em;\n        padding-top: 0.5em;\n        background-color: #f3f4f5;\n}\n","",{version:3,sources:["webpack://./src/vue-components/query-builder/fomantic-ui-rule.component.vue"],names:[],mappings:";AA4LI;QACI,YAAY;AAChB;AACA;QACI,gBAAgB;QAChB,gBAAgB;AACpB;AACA;QACI,WAAW;AACf;AACA;QACI,wCAAwC;AAC5C;AACA;QACI,qBAAqB;AACzB;AACA;QACI,qBAAqB;QACrB,kBAAkB;QAClB,yBAAyB;AAC7B",sourcesContent:['<template>\n    <div\n        class="vqb-rule ui fluid card"\n        :class="labels.spaceRule"\n        :data-name="rule.id"\n    >\n        <div class="content">\n            <div class="ui grid">\n                <div class="middle aligned row atk-qb">\n                    <div class="thirteen wide column">\n                        <div class="ui horizontal list">\n                            <div class="item vqb-rule-label">\n                                <h5 class>\n                                    {{ rule.label }}\n                                </h5>\n                            </div>\n                            <div\n                                v-if="rule.operands !== undefined"\n                                class="item vqb-rule-operand"\n                            >\n                                <select\n                                    v-model="query.operand"\n                                    class="atk-qb-select"\n                                >\n                                    <option\n                                        v-for="operand in rule.operands"\n                                        :key="operand"\n                                    >\n                                        {{ operand }}\n                                    </option>\n                                </select>\n                            </div>\n                            <div\n                                v-if="rule.operators !== undefined && rule.operators.length > 1"\n                                class="item vqb-rule-operator"\n                            >\n                                <select\n                                    v-model="query.operator"\n                                    class="atk-qb-select"\n                                >\n                                    <option\n                                        v-for="operator in rule.operators"\n                                        :key="operator"\n                                        :value="operator"\n                                    >\n                                        {{ operator }}\n                                    </option>\n                                </select>\n                            </div>\n                            <div class="item vqb-rule-input">\n                                <template v-if="canDisplay(\'input\')">\n                                    <div class="ui small input atk-qb">\n                                        <input\n                                            v-model="query.value"\n                                            :type="rule.inputType === \'number\' ? \'text\' : rule.inputType"\n                                            :placeholder="labels.textInputPlaceholder"\n                                        >\n                                    </div>\n                                </template>\n                                <template v-if="canDisplay(\'checkbox\')">\n                                    \x3c!-- TODO <SuiFormFields --\x3e\n                                    <div\n                                        inline\n                                        class="atk-qb"\n                                    >\n                                        <div\n                                            v-for="choice in rule.choices"\n                                            :key="choice.value"\n                                            class="field"\n                                        >\n                                            \x3c!-- TODO radio support in https://github.com/nightswinger/vue-fomantic-ui/blob/v0.13.0/src/modules/Checkbox/Checkbox.tsx --\x3e\n                                            <SuiCheckbox\n                                                v-model="query.value"\n                                                :label="choice.label"\n                                                :radio="isRadio"\n                                                :value="choice.value"\n                                            />\n                                        </div>\n                                    \x3c!-- TODO </SuiFormFields> --\x3e\n                                    </div>\n                                </template>\n                                <template v-if="canDisplay(\'select\')">\n                                    <select\n                                        v-model="query.value"\n                                        class="atk-qb-select"\n                                    >\n                                        <option\n                                            v-for="choice in rule.choices"\n                                            :key="choice.value"\n                                            :value="choice.value"\n                                        >\n                                            {{ choice.label }}\n                                        </option>\n                                    </select>\n                                </template>\n                                <template v-if="canDisplay(\'custom-component\')">\n                                    <div class="ui small input atk-qb">\n                                        <component\n                                            :is="rule.component"\n                                            v-model="query.value"\n                                            :config="rule.componentProps"\n                                            :optionalValue="query.option"\n                                        />\n                                    </div>\n                                </template>\n                            </div>\n                        </div>\n                    </div>\n                    <div class="right aligned three wide column">\n                        <i\n                            :class="labels.removeRuleClass"\n                            class="atk-qb-remove"\n                            @click="remove"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\nimport VueQueryBuilderRule from \'vue-query-builder/src/components/QueryBuilderRule\';\nimport AtkDatePicker from \'../share/atk-date-picker\';\nimport AtkLookup from \'../share/atk-lookup\';\n\nexport default {\n    components: {\n        AtkDatePicker: AtkDatePicker,\n        AtkLookup: AtkLookup,\n    },\n    extends: VueQueryBuilderRule,\n    inject: [\'getRootData\'],\n    data: function () {\n        return {};\n    },\n    computed: {\n        isInput: function () {\n            return this.rule.type === \'text\' || this.rule.type === \'numeric\';\n        },\n        isComponent: function () {\n            return this.rule.type === \'custom-component\';\n        },\n        isRadio: function () {\n            return this.rule.type === \'radio\';\n        },\n        isCheckbox: function () {\n            return this.rule.type === \'checkbox\' || this.isRadio;\n        },\n        isSelect: function () {\n            return this.rule.type === \'select\';\n        },\n    },\n    methods: {\n        /**\n         * Check if an input can be display in regards to:\n         * it\'s operator and then it\'s type.\n         *\n         * @returns {boolean}\n         */\n        canDisplay: function (type) {\n            if (this.labels.hiddenOperator.includes(this.query.operator)) {\n                return false;\n            }\n\n            switch (type) {\n                case \'input\': {\n                    return this.isInput;\n                }\n                case \'checkbox\': {\n                    return this.isCheckbox;\n                }\n                case \'select\': {\n                    return this.isSelect;\n                }\n                case \'custom-component\': {\n                    return this.isComponent;\n                }\n                default: {\n                    return false;\n                }\n            }\n        },\n    },\n};\n<\/script>\n\n<style>\n    .ui.input.atk-qb > input, .ui.input.atk-qb span > input, .ui.form .input.atk-qb {\n        padding: 6px;\n    }\n    .ui.grid > .row.atk-qb {\n        padding: 8px 0px;\n        min-height: 62px;\n    }\n    .inline.fields.atk-qb, .ui.form .inline.fields.atk-qb {\n        margin: 0px;\n    }\n    .atk-qb-date-picker {\n        border: 1px solid rgba(34, 36, 38, 0.15);\n    }\n    input[type=input].atk-qb-date-picker:focus {\n        border-color: #85b7d9;\n    }\n    .ui.card.vqb-rule > .content {\n        padding-bottom: 0.5em;\n        padding-top: 0.5em;\n        background-color: #f3f4f5;\n    }\n</style>\n'],sourceRoot:""}]);const i=o},60352:e=>{e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",l=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),l&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),l&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,l,r,u){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(l)for(var i=0;i<this.length;i++){var a=this[i][0];null!=a&&(o[a]=!0)}for(var s=0;s<e.length;s++){var d=[].concat(e[s]);l&&o[d[0]]||(void 0!==u&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=u),t&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=t):d[2]=t),r&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=r):d[4]="".concat(r)),n.push(d))}},n}},51864:e=>{e.exports=function(e){var n=e[1],t=e[3];if(!t)return n;if("function"==typeof btoa){var l=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(l),u="/*# ".concat(r," */");return[n].concat([u]).join("\n")}return[n].join("\n")}},75701:e=>{var n=[];function t(e){for(var t=-1,l=0;l<n.length;l++)if(n[l].identifier===e){t=l;break}return t}function l(e,l){for(var u={},o=[],i=0;i<e.length;i++){var a=e[i],s=l.base?a[0]+l.base:a[0],d=u[s]||0,c="".concat(s," ").concat(d);u[s]=d+1;var p=t(c),m={css:a[1],media:a[2],sourceMap:a[3],supports:a[4],layer:a[5]};if(-1!==p)n[p].references++,n[p].updater(m);else{var v=r(m,l);l.byIndex=i,n.splice(i,0,{identifier:c,updater:v,references:1})}o.push(c)}return o}function r(e,n){var t=n.domAPI(n);t.update(e);return function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap&&n.supports===e.supports&&n.layer===e.layer)return;t.update(e=n)}else t.remove()}}e.exports=function(e,r){var u=l(e=e||[],r=r||{});return function(e){e=e||[];for(var o=0;o<u.length;o++){var i=t(u[o]);n[i].references--}for(var a=l(e,r),s=0;s<u.length;s++){var d=t(u[s]);0===n[d].references&&(n[d].updater(),n.splice(d,1))}u=a}}},6080:e=>{var n={};e.exports=function(e,t){var l=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!l)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");l.appendChild(t)}},87182:e=>{e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},56850:(e,n,t)=>{e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},8236:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var l="";t.supports&&(l+="@supports (".concat(t.supports,") {")),t.media&&(l+="@media ".concat(t.media," {"));var r=void 0!==t.layer;r&&(l+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),l+=t.css,r&&(l+="}"),t.media&&(l+="}"),t.supports&&(l+="}");var u=t.sourceMap;u&&"undefined"!=typeof btoa&&(l+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(u))))," */")),n.styleTagTransform(l,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},39213:e=>{e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}},80365:(e,n,t)=>{t.r(n),t.d(n,{default:()=>dn});var l=t(763);const r={class:""},u=["form","name","value"],o={key:0};const i={class:"vue-query-builder"};const a={class:"vqb-group-heading card-header"},s={class:"match-type-container row gy-2 gx-3 align-items-center"},d={class:"col-auto"},c={class:"me-2",for:"vqb-match-type"},p={class:"col-auto"},m=["value"],v={key:0,class:"col-auto"},b={class:"vqb-group-body card-body"},h={class:"rule-actions"},y={class:"row gy-2 gx-3 align-items-center"},f={class:"col-auto"},q=["value"],g=["value"],A={class:"col-auto"},k={class:"col-auto"};const C=function(e){if(Array.isArray(e))return e.map(C);if(e&&"object"==typeof e){for(var n={},t=Object.keys(e),l=0,r=t.length;l<r;l++){var u=t[l];n[u]=C(e[u])}return n}return e},w=C,x={class:"vqb-children"};const D={props:["query","ruleTypes","rules","maxDepth","labels","depth","groupComponent","ruleComponent"],methods:{getComponent(e){return"query-builder-group"===e?this.groupComponent:this.ruleComponent}}};var B=t(51419);const R=(0,B.Z)(D,[["render",function(e,n,t,r,u,o){return(0,l.wg)(),(0,l.iD)("div",x,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(t.query.children,((n,r)=>((0,l.wg)(),(0,l.j4)((0,l.LL)(o.getComponent(n.type)),{key:r,type:n.type,query:n.query,"onUpdate:query":e=>n.query=e,"rule-types":t.ruleTypes,rules:t.rules,rule:e.$parent.ruleById(n.query.rule),index:r,"max-depth":t.maxDepth,depth:t.depth+1,labels:t.labels,onChildDeletionRequested:e.$parent.removeChild,groupComponent:t.groupComponent,ruleComponent:t.ruleComponent},null,40,["type","query","onUpdate:query","rule-types","rules","rule","index","max-depth","depth","labels","onChildDeletionRequested","groupComponent","ruleComponent"])))),128))])}]]),_={components:{QueryBuilderChildren:R},props:{ruleTypes:Object,type:{type:String,default:"query-builder-group"},query:Object,rules:Array,index:Number,maxDepth:Number,depth:Number,labels:Object,groupComponent:Object,ruleComponent:Object},data(){return{selectedRule:this.rules[0]}},watch:{rules:function(){this.rules&&(this.selectedRule=this.rules[0])}},computed:{selectedRuleId:function(){return this.selectedRule?this.selectedRule.id:null}},methods:{ruleById(e){var n=null;return this.rules.forEach((function(t){if(t.id===e)return n=t,!1})),n},addRule(){let e=w(this.query),n={type:"query-builder-rule",query:{rule:this.selectedRule.id,operator:this.selectedRule.operators[0],operand:void 0===this.selectedRule.operands?this.selectedRule.label:this.selectedRule.operands[0],value:null}};"multi-select"===this.ruleById(n.query.rule).type&&(n.query.value=[]),e.children.push(n),this.$emit("update:query",e)},addGroup(){let e=w(this.query);this.depth<this.maxDepth&&(e.children.push({type:"query-builder-group",query:{logicalOperator:this.labels.matchTypes[0].id,children:[]}}),this.$emit("update:query",e))},remove(){this.$emit("child-deletion-requested",this.index)},removeChild(e){let n=w(this.query);n.children.splice(e,1),this.$emit("update:query",n)},updateRule:function(e){const n=e.target.selectedOptions[0].value;this.selectedRule=this.ruleById(n)}}},V=(0,B.Z)(_,[["render",function(e,n,t,r,u,o){return(0,l.wg)(),(0,l.iD)("div")}]]),T={name:"QueryBuilderGroup",components:{QueryBuilderChildren:R},extends:V,methods:{}};var O=t(75701),Q=t.n(O),I=t(8236),E=t.n(I),S=t(6080),G=t.n(S),U=t(56850),j=t.n(U),P=t(87182),Z=t.n(P),z=t(39213),L=t.n(z),Y=t(95951),M={};M.styleTagTransform=L(),M.setAttributes=j(),M.insert=G().bind(null,"head"),M.domAPI=E(),M.insertStyleElement=Z();Q()(Y.Z,M);Y.Z&&Y.Z.locals&&Y.Z.locals;const H=(0,B.Z)(T,[["render",function(e,n,t,r,u,o){const i=(0,l.up)("query-builder-children");return(0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l.kq)(" eslint-disable vue/no-v-html "),(0,l._)("div",{class:(0,l.C_)(["vqb-group card","depth-"+e.depth.toString()])},[(0,l._)("div",a,[(0,l._)("div",s,[(0,l._)("div",d,[(0,l._)("label",c,(0,l.zw)(e.labels.matchType),1)]),(0,l._)("div",p,[(0,l.wy)((0,l._)("select",{id:"vqb-match-type","onUpdate:modelValue":n[0]||(n[0]=n=>e.query.logicalOperator=n),class:"form-select"},[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.labels.matchTypes,(e=>((0,l.wg)(),(0,l.iD)("option",{key:e.id,value:e.id},(0,l.zw)(e.label),9,m)))),128))],512),[[l.bM,e.query.logicalOperator]])]),e.depth>1?((0,l.wg)(),(0,l.iD)("div",v,[(0,l._)("button",{type:"button",class:"btn-close btn-small",onClick:n[1]||(n[1]=(...n)=>e.remove&&e.remove(...n))})])):(0,l.kq)("v-if",!0)])]),(0,l._)("div",b,[(0,l._)("div",h,[(0,l._)("div",y,[(0,l._)("div",f,[(0,l._)("select",{value:e.selectedRuleId,onInput:n[2]||(n[2]=(...n)=>e.updateRule&&e.updateRule(...n)),class:"form-select me-2"},[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.rules,(e=>((0,l.wg)(),(0,l.iD)("option",{key:e.id,value:e.id},(0,l.zw)(e.label),9,g)))),128))],40,q)]),(0,l._)("div",A,[(0,l._)("button",{type:"button",class:"btn btn-secondary me-2",onClick:n[3]||(n[3]=(...n)=>e.addRule&&e.addRule(...n))},(0,l.zw)(e.labels.addRule),1)]),(0,l._)("div",k,[e.depth<e.maxDepth?((0,l.wg)(),(0,l.iD)("button",{key:0,type:"button",class:"btn btn-secondary",onClick:n[4]||(n[4]=(...n)=>e.addGroup&&e.addGroup(...n))},(0,l.zw)(e.labels.addGroup),1)):(0,l.kq)("v-if",!0)])])]),(0,l.Wm)(i,(0,l.vs)((0,l.F4)(e.$props)),null,16)])],2)],2112)}]]),N={class:"vqb-rule card"},$={class:"row gy-2 gx-3 align-items-center card-body"},F={class:"col-auto"},K={key:0,class:"col-auto"},J={key:1,class:"col-auto"},W=["value"],X={key:2,class:"col-auto"},ee=["placeholder"],ne={key:3,class:"col-auto"},te={key:4,class:"col-auto"},le={key:5,class:"col-auto vqb-custom-component-wrap"},re={key:6,class:"col-auto"},ue=["id","value"],oe=["for"],ie={key:7,class:"col-auto"},ae=["id","name","value"],se=["for"],de={key:8,class:"col-auto"},ce=["multiple"],pe=["value"],me={key:9,class:"col-auto"},ve=["multiple"],be=["label"],he=["value"],ye={class:"col-auto d-flex"};const fe={props:["query","index","rule","labels","depth"],components:{},computed:{isCustomComponent(){return"custom-component"===this.rule.type},selectOptions(){return void 0===this.rule.choices?{}:this.rule.choices.reduce((function(e,n,t){let l=n.group;return void 0!==l?(e[l]=e[l]||[],e[l].push(n)):e[t]=n,e}),{})},hasOptionGroups(){return this.selectOptions.length&&Array.isArray(this.selectOptions[0])}},beforeMount(){"custom-component"===this.rule.type&&(this.$options.components[this.id]=this.rule.component)},mounted(){let e=w(this.query);null===this.query.value&&("checkbox"===this.rule.inputType&&(e.value=[]),"select"===this.rule.type&&(e.value=this.rule.choices[0].value),"custom-component"===this.rule.type&&(e.value=null,void 0!==this.rule.default&&(e.value=w(this.rule.default))),this.$emit("update:query",e))},methods:{remove:function(){this.$emit("child-deletion-requested",this.index)},updateQuery(e){console.log(e);let n=w(this.query);n.value=e,this.$emit("update:query",n)}}},qe=(0,B.Z)(fe,[["render",function(e,n,t,r,u,o){return(0,l.wg)(),(0,l.iD)("div")}]]),ge={extends:qe};var Ae={matchType:"Match Type",matchTypes:[{id:"all",label:"All"},{id:"any",label:"Any"}],addRule:"Add Rule",removeRule:"&times;",addGroup:"Add Group",removeGroup:"&times;",textInputPlaceholder:"value"};const ke={name:"VueQueryBuilder",components:{QueryBuilderGroup:H},props:{rules:Array,labels:{type:Object,default:()=>Ae},maxDepth:{type:Number,default:3,validator:function(e){return e>=1}},groupComponent:{type:Object,default:H},ruleComponent:{type:Object,default:(0,B.Z)(ge,[["render",function(e,n,t,r,u,o){return(0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l.kq)(" eslint-disable vue/no-v-html "),(0,l._)("div",N,[(0,l._)("div",$,[(0,l._)("label",F,(0,l.zw)(e.rule.label),1),void 0!==e.rule.operands?((0,l.wg)(),(0,l.iD)("div",K,[(0,l.kq)(" List of operands (optional) "),(0,l.wy)((0,l._)("select",{"onUpdate:modelValue":n[0]||(n[0]=n=>e.query.operand=n),class:"form-select me-2"},[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.rule.operands,(e=>((0,l.wg)(),(0,l.iD)("option",{key:e},(0,l.zw)(e),1)))),128))],512),[[l.bM,e.query.operand]])])):(0,l.kq)("v-if",!0),(0,l.kq)(" List of operators (e.g. =, !=, >, <) "),void 0!==e.rule.operators&&e.rule.operators.length>1?((0,l.wg)(),(0,l.iD)("div",J,[(0,l.wy)((0,l._)("select",{"onUpdate:modelValue":n[1]||(n[1]=n=>e.query.operator=n),class:"form-select me-2"},[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.rule.operators,(e=>((0,l.wg)(),(0,l.iD)("option",{key:e,value:e},(0,l.zw)(e),9,W)))),128))],512),[[l.bM,e.query.operator]])])):(0,l.kq)("v-if",!0),(0,l.kq)(" Basic text input "),"text"===e.rule.inputType?((0,l.wg)(),(0,l.iD)("div",X,[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":n[2]||(n[2]=n=>e.query.value=n),class:"form-control",type:"text",placeholder:e.labels.textInputPlaceholder},null,8,ee),[[l.nr,e.query.value]])])):(0,l.kq)("v-if",!0),(0,l.kq)(" Basic number input "),"number"===e.rule.inputType?((0,l.wg)(),(0,l.iD)("div",ne,[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":n[3]||(n[3]=n=>e.query.value=n),class:"form-control",type:"number"},null,512),[[l.nr,e.query.value]])])):(0,l.kq)("v-if",!0),(0,l.kq)(" Datepicker "),"date"===e.rule.inputType?((0,l.wg)(),(0,l.iD)("div",te,[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":n[4]||(n[4]=n=>e.query.value=n),class:"form-control",type:"date"},null,512),[[l.nr,e.query.value]])])):(0,l.kq)("v-if",!0),(0,l.kq)(" Custom component input "),e.isCustomComponent?((0,l.wg)(),(0,l.iD)("div",le,[((0,l.wg)(),(0,l.j4)((0,l.LL)(e.rule.component),{modelValue:e.query.value,"onUpdate:modelValue":n[5]||(n[5]=n=>e.query.value=n),rule:e.rule},null,8,["modelValue","rule"]))])):(0,l.kq)("v-if",!0),(0,l.kq)(" Checkbox input "),"checkbox"===e.rule.inputType?((0,l.wg)(),(0,l.iD)("div",re,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.rule.choices,(t=>((0,l.wg)(),(0,l.iD)("div",{key:t.value,class:"form-check form-check-inline"},[(0,l.wy)((0,l._)("input",{id:"depth"+e.depth+"-"+e.rule.id+"-"+e.index+"-"+t.value,"onUpdate:modelValue":n[6]||(n[6]=n=>e.query.value=n),type:"checkbox",value:t.value,class:"form-check-input"},null,8,ue),[[l.e8,e.query.value]]),(0,l._)("label",{class:"form-check-label",for:"depth"+e.depth+"-"+e.rule.id+"-"+e.index+"-"+t.value},(0,l.zw)(t.label),9,oe)])))),128))])):(0,l.kq)("v-if",!0),(0,l.kq)(" Radio input "),"radio"===e.rule.inputType?((0,l.wg)(),(0,l.iD)("div",ie,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.rule.choices,(t=>((0,l.wg)(),(0,l.iD)("div",{key:t.value,class:"form-check form-check-inline"},[(0,l.wy)((0,l._)("input",{id:"depth"+e.depth+"-"+e.rule.id+"-"+e.index+"-"+t.value,"onUpdate:modelValue":n[7]||(n[7]=n=>e.query.value=n),name:"depth"+e.depth+"-"+e.rule.id+"-"+e.index,type:"radio",value:t.value,class:"form-check-input"},null,8,ae),[[l.G2,e.query.value]]),(0,l._)("label",{class:"form-check-label",for:"depth"+e.depth+"-"+e.rule.id+"-"+e.index+"-"+t.value},(0,l.zw)(t.label),9,se)])))),128))])):(0,l.kq)("v-if",!0),(0,l.kq)(" Select without groups "),"select"!==e.rule.inputType||e.hasOptionGroups?(0,l.kq)("v-if",!0):((0,l.wg)(),(0,l.iD)("div",de,[(0,l.wy)((0,l._)("select",{"onUpdate:modelValue":n[8]||(n[8]=n=>e.query.value=n),class:"form-select",multiple:"multi-select"===e.rule.type},[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.selectOptions,(e=>((0,l.wg)(),(0,l.iD)("option",{key:e.value,value:e.value},(0,l.zw)(e.label),9,pe)))),128))],8,ce),[[l.bM,e.query.value]])])),(0,l.kq)(" Select with groups "),"select"===e.rule.inputType&&e.hasOptionGroups?((0,l.wg)(),(0,l.iD)("div",me,[(0,l.wy)((0,l._)("select",{"onUpdate:modelValue":n[9]||(n[9]=n=>e.query.value=n),class:"form-select",multiple:"multi-select"===e.rule.type},[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.selectOptions,((e,n)=>((0,l.wg)(),(0,l.iD)("optgroup",{key:n,label:n},[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e,(e=>((0,l.wg)(),(0,l.iD)("option",{key:e.value,value:e.value},(0,l.zw)(e.label),9,he)))),128))],8,be)))),128))],8,ve),[[l.bM,e.query.value]])])):(0,l.kq)("v-if",!0),(0,l.kq)(" Remove rule button "),(0,l._)("div",ye,[(0,l._)("button",{type:"button",class:"btn-close btn-sm",onClick:n[10]||(n[10]=(...n)=>e.remove&&e.remove(...n))})])])])],2112)}]])},modelValue:Object},data(){return{query:{logicalOperator:this.labels.matchTypes[0].id,children:[]},ruleTypes:{text:{operators:["equals","does not equal","contains","does not contain","is empty","is not empty","begins with","ends with"],inputType:"text",id:"text-field"},numeric:{operators:["=","<>","<","<=",">",">="],inputType:"number",id:"number-field"},custom:{operators:[],inputType:"text",id:"custom-field"},radio:{operators:[],choices:[],inputType:"radio",id:"radio-field"},checkbox:{operators:[],choices:[],inputType:"checkbox",id:"checkbox-field"},select:{operators:[],choices:[],inputType:"select",id:"select-field"},"multi-select":{operators:["="],choices:[],inputType:"select",id:"multi-select-field"}}}},computed:{mergedLabels(){return Object.assign({},Ae,this.labels)},mergedRules(){var e=[],n=this;return n.rules.forEach((function(t){void 0!==n.ruleTypes[t.type]?e.push(Object.assign({},n.ruleTypes[t.type],t)):e.push(t)})),e},vqbProps(){return{index:0,depth:1,maxDepth:this.maxDepth,ruleTypes:this.ruleTypes,rules:this.mergedRules,labels:this.mergedLabels,groupComponent:this.groupComponent,ruleComponent:this.ruleComponent}}},mounted(){this.$watch("query",(e=>{JSON.stringify(e)!==JSON.stringify(this.modelValue)&&this.$emit("update:modelValue",w(e))}),{deep:!0}),this.$watch("modelValue",(e=>{JSON.stringify(e)!==JSON.stringify(this.query)&&(this.query=w(e))}),{deep:!0}),void 0!==this.modelValue&&(this.query=Object.assign(this.query,this.modelValue))}},Ce=(0,B.Z)(ke,[["render",function(e,n,t,r,u,o){const a=(0,l.up)("query-builder-group");return(0,l.wg)(),(0,l.iD)("div",i,[(0,l.WI)(e.$slots,"default",(0,l.vs)((0,l.F4)(o.vqbProps)),(()=>[(0,l.Wm)(a,(0,l.dG)(o.vqbProps,{query:u.query,"onUpdate:query":n[0]||(n[0]=e=>u.query=e)}),null,16,["query"])]))])}]]),we={class:"ui grid"},xe={class:"fourteen wide column"},De={class:"ui horizontal list"},Be={class:"item"},Re={class:"ui inline"},_e={class:"item"},Ve=["value"],Te={class:"item"},Oe={class:"rule-actions"},Qe={class:"two wide right aligned column"},Ie={class:"vbq-group-body content"};t(93714),t(22625),t(70984);const Ee={name:"QueryBuilderGroup",extends:V,data:function(){return{selectedSuiRule:null}},methods:{addNewRule:function(e){this.selectedRule=this.rules.find((n=>n.id===e)),this.selectedRule&&this.addRule()}}};var Se=t(56418),Ge={};Ge.styleTagTransform=L(),Ge.setAttributes=j(),Ge.insert=G().bind(null,"head"),Ge.domAPI=E(),Ge.insertStyleElement=Z();Q()(Se.Z,Ge);Se.Z&&Se.Z.locals&&Se.Z.locals;const Ue=(0,B.Z)(Ee,[["render",function(e,n,t,r,u,o){const i=(0,l.up)("SuiDropdownItem"),a=(0,l.up)("SuiDropdownMenu"),s=(0,l.up)("SuiDropdown"),d=(0,l.up)("QueryBuilderChildren");return(0,l.wg)(),(0,l.iD)("div",{class:(0,l.C_)(["vqb-group ui fluid card",[e.labels.spaceRule,"depth-"+e.depth]])},[(0,l._)("div",{class:(0,l.C_)(["vbq-group-heading content","depth-"+e.depth])},[(0,l._)("div",we,[(0,l._)("div",xe,[(0,l._)("div",De,[(0,l._)("div",Be,[(0,l._)("h4",Re,(0,l.zw)(e.labels.matchType),1)]),(0,l._)("div",_e,[(0,l.wy)((0,l._)("select",{"onUpdate:modelValue":n[0]||(n[0]=n=>e.query.logicalOperator=n),class:"atk-qb-select"},[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.labels.matchTypes,(e=>((0,l.wg)(),(0,l.iD)("option",{key:e.id,value:e.id},(0,l.zw)(e.label),9,Ve)))),128))],512),[[l.bM,e.query.logicalOperator]])]),(0,l._)("div",Te,[(0,l._)("div",Oe,[(0,l._)("div",null,[(0,l.Wm)(s,{text:e.labels.addRule,class:"ui mini basic button atk-qb-rule-select",selection:""},{default:(0,l.w5)((()=>[(0,l.Wm)(a,{class:"atk-qb-rule-select-menu"},{default:(0,l.w5)((()=>[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.rules,(e=>((0,l.wg)(),(0,l.j4)(i,{key:e.id,text:e.label,onClick:n=>o.addNewRule(e.id)},null,8,["text","onClick"])))),128))])),_:1})])),_:1},8,["text"]),e.depth<e.maxDepth?((0,l.wg)(),(0,l.iD)("button",{key:0,type:"button",class:"ui mini basic button",onClick:n[1]||(n[1]=function(){return e.addGroup&&e.addGroup(...arguments)})},(0,l.zw)(e.labels.addGroup),1)):(0,l.kq)("v-if",!0)])])])])]),(0,l._)("div",Qe,[e.depth>1?((0,l.wg)(),(0,l.iD)("i",{key:0,class:(0,l.C_)(["atk-qb-remove",e.labels.removeGroupClass]),onClick:n[2]||(n[2]=function(){return e.remove&&e.remove(...arguments)})},null,2)):(0,l.kq)("v-if",!0)])])],2),(0,l._)("div",Ie,[(0,l.Wm)(d,(0,l.vs)((0,l.F4)(e.$props)),null,16)])],2)}]]),je=["data-name"],Pe={class:"content"},Ze={class:"ui grid"},ze={class:"middle aligned row atk-qb"},Le={class:"thirteen wide column"},Ye={class:"ui horizontal list"},Me={class:"item vqb-rule-label"},He={class:""},Ne={key:0,class:"item vqb-rule-operand"},$e={key:1,class:"item vqb-rule-operator"},Fe=["value"],Ke={class:"item vqb-rule-input"},Je={key:0,class:"ui small input atk-qb"},We=["type","placeholder"],Xe={inline:"",class:"atk-qb"},en=["value"],nn={key:3,class:"ui small input atk-qb"},tn={class:"right aligned three wide column"};var ln=t(30901),rn=t(49880);const un={components:{AtkDatePicker:ln.Z,AtkLookup:rn.Z},extends:qe,inject:["getRootData"],data:function(){return{}},computed:{isInput:function(){return"text"===this.rule.type||"numeric"===this.rule.type},isComponent:function(){return"custom-component"===this.rule.type},isRadio:function(){return"radio"===this.rule.type},isCheckbox:function(){return"checkbox"===this.rule.type||this.isRadio},isSelect:function(){return"select"===this.rule.type}},methods:{canDisplay:function(e){if(this.labels.hiddenOperator.includes(this.query.operator))return!1;switch(e){case"input":return this.isInput;case"checkbox":return this.isCheckbox;case"select":return this.isSelect;case"custom-component":return this.isComponent;default:return!1}}}};var on=t(42544),an={};an.styleTagTransform=L(),an.setAttributes=j(),an.insert=G().bind(null,"head"),an.domAPI=E(),an.insertStyleElement=Z();Q()(on.Z,an);on.Z&&on.Z.locals&&on.Z.locals;const sn={name:"QueryBuilder",components:{VueQueryBuilder:Ce},props:{groupComponent:{type:Object,default:Ue},ruleComponent:{type:Object,default:(0,B.Z)(un,[["render",function(e,n,t,r,u,o){const i=(0,l.up)("SuiCheckbox");return(0,l.wg)(),(0,l.iD)("div",{class:(0,l.C_)(["vqb-rule ui fluid card",e.labels.spaceRule]),"data-name":e.rule.id},[(0,l._)("div",Pe,[(0,l._)("div",Ze,[(0,l._)("div",ze,[(0,l._)("div",Le,[(0,l._)("div",Ye,[(0,l._)("div",Me,[(0,l._)("h5",He,(0,l.zw)(e.rule.label),1)]),void 0!==e.rule.operands?((0,l.wg)(),(0,l.iD)("div",Ne,[(0,l.wy)((0,l._)("select",{"onUpdate:modelValue":n[0]||(n[0]=n=>e.query.operand=n),class:"atk-qb-select"},[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.rule.operands,(e=>((0,l.wg)(),(0,l.iD)("option",{key:e},(0,l.zw)(e),1)))),128))],512),[[l.bM,e.query.operand]])])):(0,l.kq)("v-if",!0),void 0!==e.rule.operators&&e.rule.operators.length>1?((0,l.wg)(),(0,l.iD)("div",$e,[(0,l.wy)((0,l._)("select",{"onUpdate:modelValue":n[1]||(n[1]=n=>e.query.operator=n),class:"atk-qb-select"},[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.rule.operators,(e=>((0,l.wg)(),(0,l.iD)("option",{key:e,value:e},(0,l.zw)(e),9,Fe)))),128))],512),[[l.bM,e.query.operator]])])):(0,l.kq)("v-if",!0),(0,l._)("div",Ke,[o.canDisplay("input")?((0,l.wg)(),(0,l.iD)("div",Je,[(0,l.wy)((0,l._)("input",{"onUpdate:modelValue":n[2]||(n[2]=n=>e.query.value=n),type:"number"===e.rule.inputType?"text":e.rule.inputType,placeholder:e.labels.textInputPlaceholder},null,8,We),[[l.YZ,e.query.value]])])):(0,l.kq)("v-if",!0),o.canDisplay("checkbox")?((0,l.wg)(),(0,l.iD)(l.HY,{key:1},[(0,l.kq)(" TODO <SuiFormFields "),(0,l._)("div",Xe,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.rule.choices,(t=>((0,l.wg)(),(0,l.iD)("div",{key:t.value,class:"field"},[(0,l.kq)(" TODO radio support in https://github.com/nightswinger/vue-fomantic-ui/blob/v0.13.0/src/modules/Checkbox/Checkbox.tsx "),(0,l.Wm)(i,{modelValue:e.query.value,"onUpdate:modelValue":n[3]||(n[3]=n=>e.query.value=n),label:t.label,radio:o.isRadio,value:t.value},null,8,["modelValue","label","radio","value"])])))),128)),(0,l.kq)(" TODO </SuiFormFields> ")])],64)):(0,l.kq)("v-if",!0),o.canDisplay("select")?(0,l.wy)(((0,l.wg)(),(0,l.iD)("select",{key:2,"onUpdate:modelValue":n[4]||(n[4]=n=>e.query.value=n),class:"atk-qb-select"},[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)(e.rule.choices,(e=>((0,l.wg)(),(0,l.iD)("option",{key:e.value,value:e.value},(0,l.zw)(e.label),9,en)))),128))],512)),[[l.bM,e.query.value]]):(0,l.kq)("v-if",!0),o.canDisplay("custom-component")?((0,l.wg)(),(0,l.iD)("div",nn,[((0,l.wg)(),(0,l.j4)((0,l.LL)(e.rule.component),{modelValue:e.query.value,"onUpdate:modelValue":n[5]||(n[5]=n=>e.query.value=n),config:e.rule.componentProps,optionalValue:e.query.option},null,8,["modelValue","config","optionalValue"]))])):(0,l.kq)("v-if",!0)])])]),(0,l._)("div",tn,[(0,l._)("i",{class:(0,l.C_)([e.labels.removeRuleClass,"atk-qb-remove"]),onClick:n[6]||(n[6]=function(){return e.remove&&e.remove(...arguments)})},null,2)])])])])],10,je)}]])},data:{type:Object,required:!0}},data:function(){return{query:this.data.query??{},rules:this.data.rules??[],name:this.data.name??"",maxDepth:this.data.maxDepth??1,labels:this.getLabels(this.data.labels),form:this.data.form,debug:this.data.debug??!1}},computed:{valueJson:function(){return JSON.stringify(this.query,null)}},methods:{getLabels:function(e){return e=e||{},{matchType:"Match Type",matchTypes:[{id:"AND",label:"And"},{id:"OR",label:"Or"}],addRule:"Add Rule",removeRuleClass:"small icon times",addGroup:"Add Group",removeGroupClass:"small icon times",textInputPlaceholder:"value",spaceRule:"fitted",hiddenOperator:["is empty","is not empty"],...e}}}},dn=(0,B.Z)(sn,[["render",function(e,n,t,i,a,s){const d=(0,l.up)("VueQueryBuilder");return(0,l.wg)(),(0,l.iD)("div",r,[(0,l._)("input",{form:e.form,name:e.name,type:"hidden",value:s.valueJson},null,8,u),(0,l.Wm)(d,{modelValue:e.query,"onUpdate:modelValue":n[1]||(n[1]=n=>e.query=n),groupComponent:t.groupComponent,ruleComponent:t.ruleComponent,rules:e.rules,maxDepth:e.maxDepth,labels:e.labels},{default:(0,l.w5)((r=>[((0,l.wg)(),(0,l.j4)((0,l.LL)(t.groupComponent),(0,l.dG)(r,{query:e.query,"onUpdate:query":n[0]||(n[0]=n=>e.query=n)}),null,16,["query"]))])),_:1},8,["modelValue","groupComponent","ruleComponent","rules","maxDepth","labels"]),e.debug?((0,l.wg)(),(0,l.iD)("pre",o,(0,l.zw)(JSON.stringify(e.query,null,2)),1)):(0,l.kq)("v-if",!0)])}]])}}]);
//# sourceMappingURL=atk-vue-query-builder.min.js.map