@unvired/turboforms-embed-sdk 2.0.74 → 2.0.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32567,6 +32567,3206 @@ Formio.Components.addComponent('smartdata', SmartDataComponent);
32567
32567
  </script>
32568
32568
  <script>
32569
32569
  !function(n,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.bootstrap5=e():n.bootstrap5=e()}(self,()=>(()=>{"use strict";var n={d:(e,l)=>{for(var t in l)n.o(l,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:l[t]})},o:(n,e)=>Object.prototype.hasOwnProperty.call(n,e)},e={};n.d(e,{default:()=>V});const l={form:function(n){var e,l="";if(Array.prototype.join,n.mode.autocomplete){for(var t in l+='\n <div class="address-autocomplete-container">\n <input\n ref="'+(null==(e=n.ref.searchInput)?"":e)+'"\n ',n.inputAttributes)l+="\n "+(null==(e=t)?"":e)+'="'+(null==(e=n.inputAttributes[t])?"":e)+'"\n ';l+='\n value="'+(null==(e=n.displayValue)?"":e)+'"\n autocomplete="off"\n aria-label="'+(null==(e=n.t("autocomplete"))?"":e)+'"\n >\n ',n.component.disableClearIcon||(l+='\n <i\n class="address-autocomplete-remove-value-icon fa fa-times bi bi-x"\n tabindex="'+(null==(e=n.inputAttributes.tabindex)?"":e)+'"\n ref="'+(null==(e=n.ref.removeValueIcon)?"":e)+'"\n ></i>\n '),l+="\n </div>\n"}return l+="\n",n.self.manualModeEnabled&&(l+='\n <div class="form-check checkbox">\n <label class="form-check-label">\n <input\n ref="'+(null==(e=n.ref.modeSwitcher)?"":e)+'"\n type="checkbox"\n class="form-check-input"\n tabindex="'+(null==(e=n.inputAttributes.tabindex)?"":e)+'"\n ',n.mode.manual&&(l+="checked=true"),l+="\n ",n.disabled&&(l+="disabled=true"),l+="\n >\n <span>"+(null==(e=n.component.switchToManualModeLabel)?"":e)+"</span>\n </label>\n </div>\n"),l+="\n",n.self.manualMode&&(l+='\n <div ref="'+(null==(e=n.nestedKey)?"":e)+'">\n '+(null==(e=n.children)?"":e)+"\n </div>\n"),l+"\n"},html:function(n){var e,l="";return Array.prototype.join,l+='<div ref="value">',n.displayValue?l+=null==(e=n.displayValue)?"":e:l+="-",l+"</div>\n"}},t={form:function(n){var e,l="";return Array.prototype.join,l+='<div class="builder-component" ref="dragComponent" tabindex="-1">\n ',n.disableBuilderActions||(l+='\n <div class="component-btn-group" data-noattach="true">\n <div\n role="button"\n aria-label="Remove button. Click to remove component from the form"\n tabindex="-1"\n class="btn btn-xxs btn-danger component-settings-button component-settings-button-remove"\n ref="removeComponent"\n >\n <i class="'+(null==(e=n.iconClass("remove"))?"":e)+'"></i>\n </div>\n ',n.design||(l+='\n <div\n role="button"\n aria-label="Copy button. Click to copy component"\n tabindex="-1"\n class="btn btn-xxs btn-default component-settings-button component-settings-button-copy"\n ref="copyComponent"\n >\n <i class="'+(null==(e=n.iconClass("copy"))?"":e)+'"></i>\n </div>\n <div\n role="button"\n aria-label="Paste below button. Click to paste component below the current component"\n tabindex="-1"\n class="btn btn-xxs btn-default component-settings-button component-settings-button-paste"\n ref="pasteComponent"\n >\n <i class="'+(null==(e=n.iconClass("save"))?"":e)+'"></i>\n </div>\n ',!1!==n.editJson&&(l+='\n <div\n role="button"\n aria-label="Edit json button. Click to edit json of the current component"\n tabindex="-1"\n class="btn btn-xxs btn-default component-settings-button component-settings-button-edit-json" \n ref="editJson"\n >\n <i class="'+(null==(e=n.iconClass("wrench"))?"":e)+'"></i>\n </div>\n '),l+="\n "),l+='\n <div\n role="button"\n aria-label="Move button"\n tabindex="-1"\n class="btn btn-xxs btn-default component-settings-button component-settings-button-move"\n ref="moveComponent"\n >\n <i class="'+(null==(e=n.iconClass("move"))?"":e)+'"></i>\n </div>\n ',n.design&&"reviewpage"===n.childComponent.type||!n.editComponent||(l+='\n <div\n role="button"\n aria-label="Edit button. Click to open component settings modal window"\n tabindex="-1"\n class="btn btn-xxs btn-secondary component-settings-button component-settings-button-edit"\n ref="editComponent"\n >\n <i class="'+(null==(e=n.iconClass("cog"))?"":e)+'"></i>\n </div>\n '),l+="\n </div>\n "),l+"\n "+(null==(e=n.html)?"":e)+"\n</div>\n"}},o={form:function(n){var e,l="";return Array.prototype.join,l+='<div class="row">\n <div class="col col-sm-6">\n <p class="lead">'+(null==(e=n.t(n.componentInfo.title,{_userInput:!0}))?"":e)+" "+(null==(e=n.t("Component"))?"":e)+"</p>\n </div>\n ",n.helplinks&&(l+='\n <div class="col col-sm-6">\n <div class="float-end" style="margin-right: 20px; margin-top: 10px">\n <a href="'+(null==(e=n.t(n.helplinks+n.componentInfo.documentation))?"":e)+'" target="_blank" rel="noopener noreferrer">\n <i class="'+(null==(e=n.iconClass("new-window"))?"":e)+'"></i> '+(null==(e=n.t("Help"))?"":e)+"\n </a>\n </div>\n </div>\n "),l+='\n</div>\n<div class="row">\n <div class="col component-edit-tabs '+(null==(e=n.preview&&n.showPreview?"col-sm-6":"col-sm-12")?"":e)+'">\n <div ref="editForm">\n '+(null==(e=n.editForm)?"":e)+"\n </div>\n ",n.showPreview||(l+='\n <div style="margin-top: 10px;">\n <button class="btn btn-success" style="margin-right: 10px;" ref="saveButton">'+(null==(e=n.t("Save"))?"":e)+'</button>\n <button class="btn btn-secondary" style="margin-right: 10px;" ref="cancelButton">'+(null==(e=n.t("Cancel"))?"":e)+'</button>\n <button class="btn btn-danger" ref="removeButton">'+(null==(e=n.t("Remove"))?"":e)+"</button>\n ",n.preview&&(l+='\n <button class="btn btn-primary float-right" ref="previewButton">'+(null==(e=n.t("Show preview"))?"":e)+"</button>\n "),l+="\n </div>\n "),l+="\n </div>\n ",n.showPreview&&n.preview&&(l+='\n <div class="col col-sm-6">\n <div class="card panel preview-panel">\n <div class="card-header">\n <h4 class="card-title mb-0">'+(null==(e=n.t("Preview"))?"":e)+'</h4>\n </div>\n <div class="card-body">\n <div class="component-preview" ref="preview">\n '+(null==(e=n.preview)?"":e)+"\n </div>\n </div>\n </div>\n ",n.componentInfo.help&&(l+='\n <div class="card card-body bg-light formio-settings-help">\n '+(null==(e=n.t(n.componentInfo.help))?"":e)+"\n </div>\n "),l+='\n <div style="margin-top: 10px;">\n <button class="btn btn-success" style="margin-right: 10px;" ref="saveButton">'+(null==(e=n.t("Save"))?"":e)+'</button>\n <button class="btn btn-secondary" style="margin-right: 10px;" ref="cancelButton">'+(null==(e=n.t("Cancel"))?"":e)+'</button>\n <button class="btn btn-danger" ref="removeButton">'+(null==(e=n.t("Remove"))?"":e)+'</button>\n <button class="btn btn-primary float-end" ref="previewButton">'+(null==(e=n.t("Hide preview"))?"":e)+"</button>\n </div>\n </div>\n "),l+"\n</div>\n"}},a={form:function(n){var e,l="";return Array.prototype.join,l+='<div id="'+(null==(e=n.groupId)?"":e)+'" class="accordion builder-sidebar'+(null==(e=n.scrollEnabled?" builder-sidebar_scroll":"")?"":e)+'" ref="sidebar" role="tablist">\n <input class="form-control builder-sidebar_search" type="search" ref="sidebar-search" placeholder="'+(null==(e=n.t("Search field(s)"))?"":e)+'" />\n <div ref="sidebar-groups">\n ',n.groups.forEach(function(n){l+="\n "+(null==(e=n)?"":e)+"\n "}),l+="\n </div>\n</div>\n"}},r={form:function(n){var e,l="";return Array.prototype.join,l+='<div class="card form-builder-panel accordion-item" ref="group-panel-'+(null==(e=n.groupKey)?"":e)+'">\n <div class="card-header form-builder-group-header p-0" id="heading-'+(null==(e=n.groupKey)?"":e)+'">\n <h5 class="mb-0 mt-0 d-grid accordion-header">\n <button\n class="btn builder-group-button"\n type="button"\n data-bs-toggle="collapse"\n data-bs-target="#group-'+(null==(e=n.groupKey)?"":e)+'"\n data-bs-parent="#'+(null==(e=n.groupId)?"":e)+'"\n aria-expanded="'+(null==(e=n.group.default)?"":e)+'"\n aria-controls="group-'+(null==(e=n.groupKey)?"":e)+'"\n ref="sidebar-anchor"\n >\n '+(null==(e=n.t(n.group.title,{_userInput:!0}))?"":e)+'\n </button>\n </h5>\n </div>\n <div\n id="group-'+(null==(e=n.groupKey)?"":e)+'"\n class="accordion-collapse collapse '+(null==(e=n.group.default?" show":"")?"":e)+'"\n data-bs-parent="#'+(null==(e=n.groupId)?"":e)+'"\n data-default="'+(null==(e=n.group.default)?"":e)+'"\n aria-labelledby="heading-'+(null==(e=n.groupKey)?"":e)+'"\n ref="sidebar-group"\n >\n <div id="group-container-'+(null==(e=n.groupKey)?"":e)+'" class="d-grid gap-1 no-drop p-2 w-100" ref="sidebar-container">\n ',n.group.componentOrder.length||n.subgroups.length?(l+="\n ",!n.group.componentOrder||n.group.componentOrder.forEach(function(t){l+='\n <span\n ref="sidebar-component"\n data-group="'+(null==(e=n.groupKey)?"":e)+'"\n data-key="'+(null==(e=n.group.components[t].key)?"":e)+'"\n data-type="'+(null==(e=n.group.components[t].schema.type)?"":e)+'"\n class="btn btn-outline-primary btn-sm formcomponent drag-copy m-0"\n tabindex="'+(null==(e=n.keyboardActionsEnabled?0:-1)?"":e)+'"\n >\n ',n.group.components[t].icon&&(l+='\n <i class="'+(null==(e=n.iconClass(n.group.components[t].icon))?"":e)+'" style="margin-right: 5px;"></i>\n '),l+="\n "+(null==(e=n.t(n.group.components[t].title,{_userInput:!0}))?"":e)+"\n </span>\n "}),l+="\n "+(null==(e=n.subgroups.join(""))?"":e)+"\n "):l+="\n <div>"+(null==(e=n.t("No Matches Found"))?"":e)+"</div>\n ",l+="\n </div>\n </div>\n</div>\n"}},i={form:function(n){var e,l="";return Array.prototype.join,l+='<div class="formio builder row formbuilder">\n <div class="col-xs-4 col-sm-3 col-md-2 formcomponents">\n '+(null==(e=n.sidebar)?"":e)+'\n </div>\n <div class="col-xs-8 col-sm-9 col-md-10 formarea">\n <ol class="breadcrumb wizard-pages">\n ',n.pages.forEach(function(t,o){l+='\n <li>\n <span title="'+(null==(e=t.title)?"":e)+'" class="me-2 badge ',o===n.self.page?l+="bg-primary":l+="bg-info",l+=' wizard-page-label" ref="gotoPage">'+(null==(e=t.title)?"":e)+"</span>\n </li>\n "}),l+='\n <li class="wizard-add-page">\n <span title="'+(null==(e=n.t("Create Page"))?"":e)+'" class="me-2 badge bg-success wizard-page-label" ref="addPage">\n <i class="'+(null==(e=n.iconClass("plus"))?"":e)+'"></i> '+(null==(e=n.t("Page"))?"":e)+'\n </span>\n </li>\n </ol>\n <div ref="form">\n '+(null==(e=n.form)?"":e)+"\n </div>\n </div>\n</div>\n"}},s={form:function(n){var e,l="";for(var t in Array.prototype.join,l+="<"+(null==(e=n.input.type)?"":e)+'\n ref="button"\n ',n.input.attr)l+="\n "+(null==(e=t)?"":e)+'="'+(null==(e=n.input.attr[t])?"":e)+'"\n ';return l+="\n ",n.component.description&&(l+='\n aria-describedby="d-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n '),l+="\n>\n",n.component.leftIcon&&(l+='<span class="'+(null==(e=n.component.leftIcon)?"":e)+'"></span>&nbsp;'),l+="\n"+(null==(e=n.input.content)?"":e)+"\n",n.component.tooltip&&(l+='\n <i ref="tooltip" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+' text-muted" data-tooltip="'+(null==(e=n.component.tooltip)?"":e)+'"></i>\n'),l+="\n",n.component.rightIcon&&(l+='&nbsp;<span class="'+(null==(e=n.component.rightIcon)?"":e)+'"></span>'),l+"\n</"+(null==(e=n.input.type)?"":e)+'>\n<div ref="buttonMessageContainer">\n <span class="help-block" ref="buttonMessage"></span>\n</div>\n'},html:function(n){return"\n"}},u={form:function(n){var e,l="";Array.prototype.join,l+='<div class="form-check checkbox">\n ';var t=n.instance.getFieldsetLegendIds?n.instance.getFieldsetLegendIds():"";for(var o in l+="\n <"+(null==(e=n.input.type)?"":e)+'\n ref="input"\n id="'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n aria-labelledby="',t&&(l+=(null==(e=t)?"":e)+" "),l+="l-"+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n ',n.input.attr)l+="\n "+(null==(e=o)?"":e)+'="'+(null==(e=n.input.attr[o])?"":e)+'"\n ';return l+="\n ",n.checked&&(l+="checked=true"),l+='\n aria-required="'+(null==(e=n.component.validate.required)?"":e)+'"\n ',n.component.description&&(l+='\n aria-describedby="d-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n '),l+="\n >\n ",n.self.labelIsHidden()||(l+='\n <label\n class="'+(null==(e=n.input.labelClass)?"":e)+' form-check-label"\n for="'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n id="l-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n >\n <span>'+(null==(e=n.input.label)?"":e)+"</span>\n </label>\n "),l+="\n ",n.component.tooltip&&(l+='\n <i ref="tooltip" tabindex="0" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+' text-muted" data-tooltip="'+(null==(e=n.component.tooltip)?"":e)+'"></i>\n '),l+"\n</div>\n"},html:function(n){var e,l="";return Array.prototype.join,l+='<label class="'+(null==(e=n.input.labelClass)?"":e)+'">\n '+(null==(e=n.input.content)?"":e)+"\n ",n.self.labelIsHidden()||(l+="<span>"+(null==(e=n.input.label)?"":e)+"</span>"),l+='\n</label>\n<div ref="value">',n.checked?l+="True":l+="False",l+"</div>\n"}},d={form:function(n){var e,l="";return Array.prototype.join,n.component.columns.forEach(function(t,o){l+='\n<div class="col-'+(null==(e=t.size)?"":e)+"-"+(null==(e=t.currentWidth)?"":e)+"\n offset-"+(null==(e=t.size)?"":e)+"-"+(null==(e=t.offset)?"":e)+'"\n ref="'+(null==(e=n.columnKey)?"":e)+'">\n '+(null==(e=n.columnComponents[o])?"":e)+"\n</div>\n"}),l}},c={form:function(n){var e,l="";return Array.prototype.join,l+='<div id="'+(null==(e=n.id)?"":e)+'" class="'+(null==(e=n.classes)?"":e)+'"',n.styles&&(l+=' style="'+(null==(e=n.styles)?"":e)+'"'),l+=' ref="component">\n ',n.visible&&(l+="\n "+(null==(e=n.children)?"":e)+'\n <div ref="messageContainer" class="formio-errors invalid-feedback"></div>\n '),l+"\n</div>\n"}},p={form:function(n){var e,l="";return Array.prototype.join,l+='<div class="formio-component-modal-wrapper formio-component-modal-wrapper-'+(null==(e=n.component.type)?"":e)+'" ref="componentModalWrapper">\n <div ref="openModalWrapper"></div>\n <div class="formio-dialog formio-dialog-theme-default component-rendering-hidden" ref="modalWrapper">\n <div class="formio-dialog-overlay" ref="modalOverlay"></div>\n <div class="formio-dialog-content" aria-labelledby="ml-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'" ',n.self.isIE()||(l+=' role="dialog" '),l+=' ref="modalContents">\n <label class="visually-hidden" id="ml-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'">'+(null==(e=n.t(n.component.label))?"":e)+(null==(e=n.self.isIE()?", dialog":"")?"":e)+"</label>\n ",n.options.vpat?l+='\n <button class="formio-dialog-close float-end" title="Close" aria-label="Close button. Click to get back to the form" ref="modalCloseButton"></button>\n ':l+='\n <button class="formio-dialog-close float-end btn btn-secondary btn-sm" aria-label="Close button. Click to get back to the form" ref="modalClose"></button>\n ',l+='\n <div ref="modalContent">\n ',n.visible&&(l+='\n <div ref="componentContent">'+(null==(e=n.children)?"":e)+"</div>\n "),l+='\n <div class="formio-dialog-buttons">\n ',n.options.vpat&&(l+='\n <button class="btn btn-secondary formio-dialog-button" aria-label="Cancel button. Click to cancel the changes and get back to the form." ref="modalClose">'+(null==(e=n.t("Cancel"))?"":e)+"</button>\n "),l+'\n <button class="btn btn-success formio-dialog-button" ref="modalSave" aria-label="Save button. Click to save the changes and get back to the form.">'+(null==(e=n.t("Save"))?"":e)+'</button>\n </div>\n </div>\n </div>\n <span class="visually-hidden" ref="modalLiveRegion" aria-live="assertive"></span>\n </div>\n</div>\n'}},b={form:function(n){var e,l="";return Array.prototype.join,n.children.forEach(function(n){l+='\n <td class="editgrid-table-column">\n '+(null==(e=n)?"":e)+"\n </td>\n"}),l+="\n"}},m={form:function(n){var e,l="";return Array.prototype.join,l+='<table class="table datagrid-table table-bordered\n '+(null==(e=n.component.striped?"table-striped":"")?"":e)+"\n "+(null==(e=n.component.hover?"table-hover":"")?"":e)+"\n "+(null==(e=n.component.condensed?"table-sm":"")?"":e)+'\n " ',(n.component.layoutFixed||n.readOnly)&&(l+='style="table-layout: fixed;"'),l+=">\n ",n.hasHeader&&(l+="\n <thead>\n <tr>\n ",n.component.reorder&&(l+="<th></th>"),l+="\n ",n.columns.forEach(function(t){l+="\n ",t.hidden&&!n.builder||(l+='\n <th class="'+(null==(e=t.validate&&t.validate.required?"field-required":"")?"":e)+'">\n '+(null==(e=t.hideLabel?"":n.t(t.label||t.title,{_userInput:!0}))?"":e)+"\n ",t.tooltip&&(l+=' <i ref="tooltip" tabindex="0" data-title="'+(null==(e=t.tooltip)?"":e)+'" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+' text-muted" data-tooltip="'+(null==(e=t.tooltip)?"":e)+'"></i>'),l+="\n </th>\n "),l+="\n "}),l+="\n ",n.hasExtraColumn&&(l+='\n <th>\n <span class="visually-hidden">'+(null==(e=n.t("Add/Remove"))?"":e)+"</span>\n ",!n.builder&&n.hasAddButton&&n.hasTopSubmit&&(l+='\n <button class="btn btn-primary formio-button-add-row" ref="'+(null==(e=n.datagridKey)?"":e)+'-addRow" tabindex="'+(null==(e=n.tabIndex)?"":e)+'">\n <i class="'+(null==(e=n.iconClass("plus"))?"":e)+'"></i>'+(null==(e=n.t(n.component.addAnother||"Add Another",{_userInput:!0}))?"":e)+"\n </button>\n "),l+="\n </th>\n "),l+="\n </tr>\n </thead>\n "),l+='\n <tbody ref="'+(null==(e=n.datagridKey)?"":e)+'-tbody" data-key="'+(null==(e=n.datagridKey)?"":e)+'">\n ',n.rows.forEach(function(t,o){l+="\n ",n.hasGroups&&n.groups[o]&&(l+='\n <tr ref="'+(null==(e=n.datagridKey)?"":e)+'-group-header" class="datagrid-group-header'+(null==(e=n.hasToggle?" clickable":"")?"":e)+'">\n <td\n ref="'+(null==(e=n.datagridKey)?"":e)+'-group-label"\n colspan="'+(null==(e=n.numColumns)?"":e)+'"\n class="datagrid-group-label">'+(null==(e=n.groups[o].label)?"":e)+"</td>\n </tr>\n "),l+='\n <tr ref="'+(null==(e=n.datagridKey)?"":e)+'-row">\n ',n.component.reorder&&(l+='\n <td>\n <button type="button" class="formio-drag-button btn btn-default bi bi-list" data-key="'+(null==(e=n.datagridKey)?"":e)+'" style="display: block; margin: 0 auto"></button>\n </td>\n '),l+="\n ",n.columns.forEach(function(o){l+='\n <td ref="'+(null==(e=n.datagridKey)?"":e)+'" ',o.key&&o.overlay&&o.overlay.width&&(l+=' style="width: '+(null==(e=o.overlay.width+"px")?"":e)+'"'),l+=" >\n "+(null==(e=t[o.key])?"":e)+"\n </td>\n "}),l+="\n ",n.hasExtraColumn&&(l+="\n ",n.hasRemoveButtons&&(l+='\n <td>\n <button type="button" class="btn btn-secondary formio-button-remove-row" ref="'+(null==(e=n.datagridKey)?"":e)+'-removeRow" tabindex="'+(null==(e=n.tabIndex)?"":e)+'" aria-label="'+(null==(e=n.t("remove"))?"":e)+'" style="display: block; margin: 0 auto">\n <i class="'+(null==(e=n.iconClass("circle-xmark"))?"":e)+'"></i>\n </button>\n </td>\n '),l+="\n ",n.canAddColumn&&(l+='\n <td ref="'+(null==(e=n.key)?"":e)+'-container">\n '+(null==(e=n.placeholder)?"":e)+"\n </td>\n "),l+="\n "),l+="\n </tr>\n "}),l+="\n </tbody>\n ",!n.builder&&n.hasAddButton&&n.hasBottomSubmit&&(l+='\n <tfoot>\n <tr>\n <td colspan="'+(null==(e=n.component.layoutFixed?n.numColumns:n.numColumns+1)?"":e)+'">\n <button class="btn btn-primary formio-button-add-row" ref="'+(null==(e=n.datagridKey)?"":e)+'-addRow" tabindex="'+(null==(e=n.tabIndex)?"":e)+'">\n <i class="'+(null==(e=n.iconClass("plus"))?"":e)+'"></i> '+(null==(e=n.t(n.component.addAnother||"Add Another",{_userInput:!0}))?"":e)+"\n </button>\n </td>\n </tr>\n </tfoot>\n "),l+="\n</table>\n"},html:function(n){var e,l="";return Array.prototype.join,l+='<table class="table datagrid-table table-bordered\n '+(null==(e=n.component.striped?"table-striped":"")?"":e)+"\n "+(null==(e=n.component.hover?"table-hover":"")?"":e)+"\n "+(null==(e=n.component.condensed?"table-sm":"")?"":e)+'\n ">\n ',n.hasHeader&&(l+="\n <thead>\n <tr>\n ",n.columns.forEach(function(t){l+='\n <th class="'+(null==(e=t.validate&&t.validate.required?"field-required":"")?"":e)+'">\n '+(null==(e=t.hideLabel?"":n.t(t.label||t.title,{_userInput:!0}))?"":e)+"\n ",t.tooltip&&(l+=' <i ref="tooltip" tabindex="0" data-title="'+(null==(e=t.tooltip)?"":e)+'" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+' text-muted" data-tooltip="'+(null==(e=t.tooltip)?"":e)+'"></i>'),l+="\n </th>\n "}),l+="\n </tr>\n </thead>\n "),l+="\n <tbody>\n ",n.rows.forEach(function(t){l+="\n <tr>\n ",n.columns.forEach(function(o){l+='\n <td ref="'+(null==(e=n.datagridKey)?"":e)+'">\n '+(null==(e=t[o.key])?"":e)+"\n </td>\n "}),l+="\n </tr>\n "}),l+="\n </tbody>\n</table>\n"}},f={form:function(n){var e,l="";Array.prototype.join;var t=n.instance.getFieldsetLegendIds?n.instance.getFieldsetLegendIds():"";return l+='\n<div class="row" role="group"\n ',n.label.hidden?l+='\n aria-label="'+(null==(e=n.component.label)?"":e)+'"\n ':(l+='\n aria-labelledby="',t&&(l+=(null==(e=t)?"":e)+" "),l+="l-"+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n '),l+="\n ",n.component.description&&(l+='\n aria-describedby="d-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n '),l+="\n >\n ",n.dayFirst&&n.showDay&&(l+='\n <div class="col col-xs-3">\n ',n.component.hideInputLabels||(l+='\n <label for="'+(null==(e=n.component.key)?"":e)+'-day" class="',n.component.fields.day.required&&(l+="field-required"),l+='">'+(null==(e=n.t("Day"))?"":e)+"</label>\n "),l+="\n <div>"+(null==(e=n.day)?"":e)+"</div>\n </div>\n "),l+="\n ",n.showMonth&&(l+='\n <div class="col col-xs-4">\n ',n.component.hideInputLabels||(l+='\n <label for="'+(null==(e=n.component.key)?"":e)+'-month" class="',n.component.fields.month.required&&(l+="field-required"),l+='">'+(null==(e=n.t("Month"))?"":e)+"</label>\n "),l+="\n <div>"+(null==(e=n.month)?"":e)+"</div>\n </div>\n "),l+="\n ",!n.dayFirst&&n.showDay&&(l+='\n <div class="col col-xs-3">\n ',n.component.hideInputLabels||(l+='\n <label for="'+(null==(e=n.component.key)?"":e)+'-day" class="',n.component.fields.day.required&&(l+="field-required"),l+='">'+(null==(e=n.t("Day"))?"":e)+"</label>\n "),l+="\n <div>"+(null==(e=n.day)?"":e)+"</div>\n </div>\n "),l+="\n ",n.showYear&&(l+='\n <div class="col col-xs-5">\n ',n.component.hideInputLabels||(l+='\n <label for="'+(null==(e=n.component.key)?"":e)+'-year" class="',n.component.fields.year.required&&(l+="field-required"),l+='">'+(null==(e=n.t("Year"))?"":e)+"</label>\n "),l+="\n <div>"+(null==(e=n.year)?"":e)+"</div>\n </div>\n "),l+'\n</div>\n<input name="ctx.data[day]" type="hidden" class="form-control" lang="en" value="" ref="input">\n'}},v={form:function(n){var e,l="";return Array.prototype.join,l+='<ul class="editgrid-listgroup list-group\n '+(null==(e=n.component.striped?"table-striped":"")?"":e)+"\n "+(null==(e=n.component.bordered?"table-bordered":"")?"":e)+"\n "+(null==(e=n.component.hover?"table-hover":"")?"":e)+"\n "+(null==(e=n.component.condensed?"table-sm":"")?"":e)+'\n ">\n ',n.header&&(l+='\n <li class="list-group-item list-group-header">\n '+(null==(e=n.header)?"":e)+"\n </li>\n "),l+="\n ",n.rows.forEach(function(t,o){l+='\n <li class="list-group-item" ref="'+(null==(e=n.ref.row)?"":e)+'">\n '+(null==(e=t)?"":e)+"\n ",n.openRows[o]&&!n.readOnly&&(l+='\n <div class="editgrid-actions">\n <button class="btn btn-primary" ref="'+(null==(e=n.ref.saveRow)?"":e)+'">'+(null==(e=n.t(n.component.saveRow||"Save",{_userInput:!0}))?"":e)+"</button>\n ",n.component.removeRow&&(l+='\n <button class="btn btn-danger" ref="'+(null==(e=n.ref.cancelRow)?"":e)+'">'+(null==(e=n.t(n.component.removeRow||"Cancel",{_userInput:!0}))?"":e)+"</button>\n "),l+="\n </div>\n "),l+='\n <div class="has-error">\n <div class="editgrid-row-error">\n '+(null==(e=n.errors[o])?"":e)+"\n </div>\n </div>\n </li>\n "}),l+="\n ",n.footer&&(l+='\n <li class="list-group-item list-group-footer">\n '+(null==(e=n.footer)?"":e)+"\n </li>\n "),l+="\n</ul>\n",!n.readOnly&&n.hasAddButton&&(l+='\n<button class="btn btn-primary" ref="'+(null==(e=n.ref.addRow)?"":e)+'">\n <i class="'+(null==(e=n.iconClass("plus"))?"":e)+'"></i> '+(null==(e=n.t(n.component.addAnother||"Add Another",{_userInput:!0}))?"":e)+"\n</button>\n"),l+="\n"},html:function(n){var e,l="";return Array.prototype.join,l+='<ul class="editgrid-listgroup list-group\n '+(null==(e=n.component.striped?"table-striped":"")?"":e)+"\n "+(null==(e=n.component.bordered?"table-bordered":"")?"":e)+"\n "+(null==(e=n.component.hover?"table-hover":"")?"":e)+"\n "+(null==(e=n.component.condensed?"table-sm":"")?"":e)+'\n ">\n ',n.header&&(l+='\n <li class="list-group-item list-group-header">\n '+(null==(e=n.header)?"":e)+"\n </li>\n "),l+="\n ",n.rows.forEach(function(t,o){l+='\n <li class="list-group-item" ref="'+(null==(e=n.ref.row)?"":e)+'">\n '+(null==(e=t)?"":e)+"\n ",n.openRows[o]&&!n.readOnly&&(l+='\n <div class="editgrid-actions">\n <button class="btn btn-primary" ref="'+(null==(e=n.ref.saveRow)?"":e)+'">'+(null==(e=n.t(n.component.saveRow||"Save",{_userInput:!0}))?"":e)+"</button>\n ",n.component.removeRow&&(l+='\n <button class="btn btn-danger" ref="'+(null==(e=n.ref.cancelRow)?"":e)+'">'+(null==(e=n.t(n.component.removeRow||"Cancel",{_userInput:!0}))?"":e)+"</button>\n "),l+="\n </div>\n "),l+='\n <div class="has-error">\n <div class="editgrid-row-error help-block">\n '+(null==(e=n.errors[o])?"":e)+"\n </div>\n </div>\n </li>\n "}),l+="\n ",n.footer&&(l+='\n <li class="list-group-item list-group-footer">\n '+(null==(e=n.footer)?"":e)+"\n </li>\n "),l+="\n</ul>\n"}},y={form:function(n){var e,l="";return Array.prototype.join,l+='<div class="editgrid-table-container">\n <div class="table-responsive">\n <table class="table\n '+(null==(e=n.component.striped?"table-striped":"")?"":e)+"\n "+(null==(e=n.component.bordered?"table-bordered":"")?"":e)+"\n "+(null==(e=n.component.hover?"table-hover":"")?"":e)+"\n "+(null==(e=n.component.condensed?"table-sm":"")?"":e)+'\n ">\n ',n.header&&(l+='\n <thead class="editgrid-table-head">\n '+(null==(e=n.header)?"":e)+"\n </thead>\n "),l+='\n <tbody class="editgrid-table-body">\n ',n.rows.forEach(function(t,o){l+='\n <tr ref="'+(null==(e=n.ref.row)?"":e)+'">\n '+(null==(e=t)?"":e)+"\n ",n.openRows[o]&&!n.readOnly&&(l+='\n <td class="editgrid-table-column">\n <div class="editgrid-actions">\n <button class="btn btn-primary" ref="'+(null==(e=n.ref.saveRow)?"":e)+'">'+(null==(e=n.t(n.component.saveRow||"Save",{_userInput:!0}))?"":e)+"</button>\n ",n.component.removeRow&&(l+='\n <button class="btn btn-danger" ref="'+(null==(e=n.ref.cancelRow)?"":e)+'">'+(null==(e=n.t(n.component.removeRow||"Cancel",{_userInput:!0}))?"":e)+"</button>\n "),l+="\n </div>\n </td>\n "),l+="\n ",n.errors[o]&&(l+='\n <td class="editgrid-table-column">\n <div class="has-error">\n <div class="editgrid-row-error help-block">\n '+(null==(e=n.errors[o])?"":e)+"\n </div>\n </div>\n </td>\n "),l+="\n </tr>\n "}),l+="\n </tbody>\n ",n.footer&&(l+="\n <tfoot>\n <tr>\n "+(null==(e=n.footer)?"":e)+"\n </tr>\n <tfoot>\n "),l+="\n </table>\n </div>\n</div>\n",!n.readOnly&&n.hasAddButton&&(l+='\n<button class="btn btn-primary" ref="'+(null==(e=n.ref.addRow)?"":e)+'">\n <i class="'+(null==(e=n.iconClass("plus"))?"":e)+'"></i>\n '+(null==(e=n.t(n.component.addAnother||"Add Another",{_userInput:!0}))?"":e)+"\n</button>\n"),l+="\n"},html:function(n){var e,l="";return Array.prototype.join,l+='<div class="editgrid-table-container">\n <div class="table-responsive">\n <table class="table\n '+(null==(e=n.component.striped?"table-striped":"")?"":e)+"\n "+(null==(e=n.component.bordered?"table-bordered":"")?"":e)+"\n "+(null==(e=n.component.hover?"table-hover":"")?"":e)+"\n "+(null==(e=n.component.condensed?"table-sm":"")?"":e)+'\n ">\n ',n.header&&(l+='\n <thead class="editgrid-table-head">\n '+(null==(e=n.header)?"":e)+"\n </thead>\n "),l+='\n <tbody class="editgrid-table-body">\n ',n.rows.forEach(function(t,o){l+='\n <tr ref="'+(null==(e=n.ref.row)?"":e)+'">\n '+(null==(e=t)?"":e)+"\n ",n.openRows[o]&&!n.readOnly&&(l+='\n <td class="editgrid-table-column">\n <div class="editgrid-actions">\n <button class="btn btn-primary" ref="'+(null==(e=n.ref.saveRow)?"":e)+'">'+(null==(e=n.t(n.component.saveRow||"Save",{_userInput:!0}))?"":e)+"</button>\n ",n.component.removeRow&&(l+='\n <button class="btn btn-danger" ref="'+(null==(e=n.ref.cancelRow)?"":e)+'">'+(null==(e=n.t(n.component.removeRow||"Cancel",{_userInput:!0}))?"":e)+"</button>\n "),l+="\n </div>\n </td>\n "),l+="\n ",n.errors[o]&&(l+='\n <td class="editgrid-table-column">\n <div class="has-error">\n <div class="editgrid-row-error help-block">\n '+(null==(e=n.errors[o])?"":e)+"\n </div>\n </div>\n </td>\n "),l+="\n </tr>\n "}),l+="\n </tbody>\n ",n.footer&&(l+="\n <tfoot>\n <tr>\n "+(null==(e=n.footer)?"":e)+"\n </tr>\n <tfoot>\n "),l+="\n </table>\n </div>\n</div>\n"}},g={form:function(n){var e,l="";return Array.prototype.join,n.label.hidden||"bottom"===n.label.labelPosition||(l+="\n "+(null==(e=n.labelMarkup)?"":e)+"\n"),l+="\n\n",n.label.hidden&&n.label.className&&n.component.validate.required&&(l+='\n <label class="'+(null==(e=n.label.className)?"":e)+'"></label>\n'),l+="\n\n"+(null==(e=n.element)?"":e)+"\n\n",n.label.hidden||"bottom"!==n.label.labelPosition||(l+="\n "+(null==(e=n.labelMarkup)?"":e)+"\n"),l+="\n",n.component.description&&(l+='\n <div id="d-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'" class="form-text text-muted">'+(null==(e=n.t(n.component.description,{_userInput:!0}))?"":e)+"</div>\n"),l+"\n"},align:function(n){var e,l="";return Array.prototype.join,l+='<div class="field-wrapper flex-fill\n '+(null==(e=n.isRightPosition?"field-wrapper--reverse":"")?"":e)+'">\n ',n.label.hidden||(l+='\n <div class="field-label\n '+(null==(e=n.isRightAlign?"field-label--right":"")?"":e)+'"\n style="'+(null==(e=n.labelStyles)?"":e)+'">\n '+(null==(e=n.labelMarkup)?"":e)+"\n </div>\n "),l+="\n\n ",n.label.hidden&&n.label.className&&n.component.validate.required&&(l+='\n <div class="field-label\n '+(null==(e=n.isRightAlign?"field-label--right":"")?"":e)+'"\n style="'+(null==(e=n.labelStyles)?"":e)+'">\n <label class="'+(null==(e=n.label.className)?"":e)+'"></label>\n </div>\n '),l+='\n\n <div class="field-content" style="'+(null==(e=n.contentStyles)?"":e)+'">\n '+(null==(e=n.element)?"":e)+"\n </div>\n</div>\n\n",n.component.description&&(l+='\n <div class="form-text text-muted">'+(null==(e=n.t(n.component.description,{_userInput:!0}))?"":e)+"</div>\n"),l+"\n"}},h={form:function(n){var e,l="";return Array.prototype.join,l+="<fieldset>\n ",n.component.legend&&(l+='\n <legend ref="header" id="l-'+(null==(e=n.instance.id)?"":e)+'-legend" class="'+(null==(e=n.component.collapsible?"formio-clickable":"")?"":e)+'">\n '+(null==(e=n.t(n.component.legend,{_userInput:!0}))?"":e)+"\n ",n.component.tooltip&&(l+='\n <i ref="tooltip" tabindex="0" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+' text-muted" data-tooltip="'+(null==(e=n.component.tooltip)?"":e)+'"></i>\n '),l+="\n </legend>\n "),l+="\n ",n.collapsed||(l+='\n <div class="fieldset-body" ref="'+(null==(e=n.nestedKey)?"":e)+'">\n '+(null==(e=n.children)?"":e)+"\n </div>\n "),l+"\n</fieldset>\n"}},w={form:function(n){var e,l="";return Array.prototype.join,n.options.vpat&&(l+='\n <span tabindex="-1" class="visually-hidden" id="invisible-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"></span>\n'),l+="\n",n.self.imageUpload?(l+="\n <div>\n ",n.files.forEach(function(t){l+='\n <div>\n <span>\n <img ref="fileImage" src="" alt="'+(null==(e=t.originalName||t.name)?"":e)+'" style="width:'+(null==(e=n.component.imageSize)?"":e)+'px">\n ',n.disabled||(l+='\n <i tabindex="0" class="'+(null==(e=n.iconClass("remove"))?"":e)+'" ref="removeLink"></i>\n '),l+="\n </span>\n </div>\n "}),l+="\n ",n.filesToUpload.forEach(function(t){l+="\n ","progress"===t.status?l+='\n <div class="text-end">'+(null==(e=n.fileSize(t.size))?"":e)+'</div>\n <div class="status progress">\n <div id="'+(null==(e=t.id)?"":e)+'" class="progress-bar" role="progressbar" aria-valuenow="'+(null==(e=t.progress)?"":e)+'" aria-valuemin="0" aria-valuemax="100" style="width: '+(null==(e=t.progress)?"":e)+'%" ref="progress">\n <span class="visually-hidden">'+(null==(e=t.progress)?"":e)+"% "+(null==(e=n.t("Complete"))?"":e)+"</span>\n </div>\n </div>\n ":l+='\n <div class="status text-'+(null==(e="error"===t.status?"danger":t.status)?"":e)+'">'+(null==(e=n.t(t.message))?"":e)+"</div>\n ",l+="\n "}),l+="\n </div>\n"):(l+="\n ",n.options.vpat&&(l+="\n <div>"+(null==(e=n.component.filePattern&&"*"!==n.component.filePattern?n.t("Allowed file types: ")+n.component.filePattern:"Any file types are allowed")?"":e)+"</div>\n "),l+='\n <ul class="list-group list-group-striped">\n <li class="list-group-item list-group-header hidden-xs hidden-sm">\n <div class="row">\n <div class="col-md-'+(null==(e=n.columns.name)?"":e)+'"><strong>'+(null==(e=n.t("File Name"))?"":e)+'</strong></div>\n <div class="col-md-'+(null==(e=n.columns.size)?"":e)+'"><strong>'+(null==(e=n.t("Size"))?"":e)+"</strong></div>\n ",n.self.hasTypes&&(l+='\n <div class="col-md-'+(null==(e=n.columns.type)?"":e)+'"><strong>'+(null==(e=n.t("Type"))?"":e)+"</strong></div>\n "),l+='\n <div class="col-md-'+(null==(e=n.columns.actions)?"":e)+' justify-center">\n ',n.showSyncButton&&(l+='\n <button\n class="btn btn-primary btn-sm"\n ref="syncNow"\n ',(n.disabled||n.isSyncing)&&(l+="disabled=true"),l+="\n >"+(null==(e=n.isSyncing?n.t("Syncing..."):n.t("Sync Now"))?"":e)+"</button>\n "),l+="\n </div>\n </div>\n </li>\n ",n.files.forEach(function(t){l+='\n <li class="list-group-item">\n <div class="row">\n <div class="col-md-'+(null==(e=n.columns.name)?"":e)+'">\n ',n.component.uploadOnly?l+="\n "+(null==(e=t.originalName||t.name)?"":e)+"\n ":l+='\n <a href="'+(null==(e=t.url||"#")?"":e)+'" target="_blank" ref="fileLink">\n <span class="visually-hidden">'+(null==(e=n.t("Press to open "))?"":e)+"</span>"+(null==(e=t.originalName||t.name)?"":e)+"\n </a>\n ",l+='\n </div>\n <div class="col-md-'+(null==(e=n.columns.size)?"":e)+'">'+(null==(e=n.fileSize(t.size))?"":e)+"</div>\n ",n.self.hasTypes&&!n.disabled&&(l+='\n <div class="col-md-'+(null==(e=n.columns.type)?"":e)+'">\n <select class="file-type" ref="fileType">\n ',n.component.fileTypes.map(function(o){l+='\n <option class="test" value="'+(null==(e=o.value)?"":e)+'" ',o.label===t.fileType&&(l+='selected="selected"'),l+=">"+(null==(e=n.t(o.label))?"":e)+"</option>\n "}),l+="\n </select>\n </div>\n "),l+="\n ",n.self.hasTypes&&n.disabled&&(l+='\n <div class="col-md-'+(null==(e=n.columns.type)?"":e)+'">'+(null==(e=t.fileType)?"":e)+"</div>\n "),l+="\n ",n.disabled||(l+='\n <div class="col-md-'+(null==(e=n.columns.actions)?"":e)+' justify-center"><i tabindex="0" class="'+(null==(e=n.iconClass("remove"))?"":e)+'" ref="removeLink"></i></div>\n '),l+="\n </div>\n </li>\n "}),l+="\n ",n.filesToDelete.forEach(function(t){l+='\n <li class="list-group-item">\n <div class="row align-center">\n <div class="col-md-'+(null==(e=n.columns.name)?"":e)+'">\n <div>'+(null==(e=t.originalName||t.name)?"":e)+'</div>\n <div class="status text-'+(null==(e="error"===t.status?"danger":t.status)?"":e)+'">'+(null==(e=n.t(t.message))?"":e)+'</div>\n </div>\n <div class="col-md-'+(null==(e=n.columns.size)?"":e)+'">'+(null==(e=n.fileSize(t.size))?"":e)+"</div>\n ",n.self.hasTypes&&(l+='\n <div class="col-md-'+(null==(e=n.columns.type)?"":e)+'">\n <select class="file-type" ref="fileType">\n ',n.component.fileTypes.map(function(o){l+='\n <option class="test" value="'+(null==(e=o.value)?"":e)+'" ',o.label===t.fileType&&(l+='selected="selected"'),l+=">"+(null==(e=n.t(o.label))?"":e)+"</option>\n "}),l+="\n </select>\n </div>\n "),l+="\n ",n.isSyncing||"success"===t.status||(l+='\n <div class="col-md-'+(null==(e=n.columns.actions)?"":e)+' justify-center"><i tabindex="0" class="'+(null==(e=n.iconClass("arrow-counterclockwise"))?"":e)+'" ref="restoreFile"></i></div>\n '),l+="\n </div>\n </li>\n "}),l+="\n ",n.filesToUpload.forEach(function(t){l+='\n <li class="list-group-item">\n <div class="row align-center">\n <div class="col-md-'+(null==(e=n.columns.name)?"":e)+'">\n <div>'+(null==(e=t.originalName||t.name)?"":e)+"</div>\n ","progress"===t.status?l+='\n <div class="status progress">\n <div id="'+(null==(e=t.id)?"":e)+'" class="progress-bar" role="progressbar" aria-valuenow="'+(null==(e=t.progress)?"":e)+'" aria-valuemin="0" aria-valuemax="100" style="width: '+(null==(e=t.progress)?"":e)+'%" ref="progress">\n <span class="visually-hidden">'+(null==(e=t.progress)?"":e)+"% "+(null==(e=n.t("Complete"))?"":e)+"</span>\n </div>\n </div>\n ":l+='\n <div class="status text-'+(null==(e="error"===t.status?"danger":t.status)?"":e)+'">'+(null==(e=n.t(t.message))?"":e)+"</div>\n ",l+='\n </div>\n <div class="col-md-'+(null==(e=n.columns.size)?"":e)+'">'+(null==(e=n.fileSize(t.size))?"":e)+"</div>\n ",n.self.hasTypes&&(l+='\n <div class="col-md-'+(null==(e=n.columns.type)?"":e)+'">\n <select class="file-type" ref="fileType">\n ',n.component.fileTypes.map(function(o){l+='\n <option class="test" value="'+(null==(e=o.value)?"":e)+'" ',o.label===t.fileType&&(l+='selected="selected"'),l+=">"+(null==(e=n.t(o.label))?"":e)+"</option>\n "}),l+="\n </select>\n </div>\n "),l+="\n ","progress"===t.status?l+='\n <div class="col-md-'+(null==(e=n.columns.actions)?"":e)+' justify-center"><i id="abort-'+(null==(e=t.id)?"":e)+'" tabindex="0" class="'+(null==(e=n.iconClass("ban"))?"":e)+'"></i></div>\n ':n.isSyncing||"success"===t.status||(l+='\n <div class="col-md-'+(null==(e=n.columns.actions)?"":e)+' justify-center"><i tabindex="0" class="'+(null==(e=n.iconClass("remove"))?"":e)+'" ref="fileToSyncRemove"></i></div>\n '),l+="\n </div>\n </li>\n "}),l+="\n </ul>\n"),l+="\n",n.disabled||!n.component.multiple&&n.files.length||(l+="\n ",n.self.useWebViewCamera?l+='\n <div class="fileSelector">\n <button class="btn btn-primary" ref="galleryButton"><i class="'+(null==(e=n.iconClass("book"))?"":e)+'"></i> '+(null==(e=n.t("Gallery"))?"":e)+'</button>\n <button class="btn btn-primary" ref="cameraButton"><i class="'+(null==(e=n.iconClass("camera"))?"":e)+'"></i> '+(null==(e=n.t("Camera"))?"":e)+"</button>\n </div>\n ":n.self.cameraMode?l+='\n <div class="video-container">\n <video class="video" autoplay="true" ref="videoPlayer" tabindex="-1"></video>\n </div>\n <button class="btn btn-primary" ref="takePictureButton"><i class="'+(null==(e=n.iconClass("camera"))?"":e)+'"></i> '+(null==(e=n.t("Take Picture"))?"":e)+'</button>\n <button class="btn btn-primary" ref="toggleCameraMode">'+(null==(e=n.t("Switch to file upload"))?"":e)+"</button>\n ":(l+='\n <div class="fileSelector" ref="fileDrop" '+(null==(e=n.fileDropHidden?"hidden":"")?"":e)+">\n ",n.self.isMobile.any||(l+='\n <i class="'+(null==(e=n.iconClass("cloud-upload"))?"":e)+'"></i> '+(null==(e=n.t("Drop files to attach,"))?"":e)+"\n "),l+="\n ",n.self.imageUpload&&n.component.webcam&&(l+='\n <a href="#" ref="toggleCameraMode"><i class="'+(null==(e=n.iconClass("camera"))?"":e)+'"></i>'+(null==(e=n.t("Use Camera"))?"":e)+"</a>\n "+(null==(e=n.t("or"))?"":e)+"\n "),l+='\n <a href="#" ref="fileBrowse" class="browse">\n ',n.self.isMobile.any&&n.component.capture?(l+="\n ",n.component.filePattern&&n.component.filePattern.includes("video")?l+='\n <i class="'+(null==(e=n.iconClass("video"))?"":e)+'"></i>'+(null==(e=n.t("Capture Video"))?"":e)+"\n ":n.component.filePattern&&n.component.filePattern.includes("audio")?l+='\n <i class="'+(null==(e=n.iconClass("microphone"))?"":e)+'"></i>'+(null==(e=n.t("Capture Audio"))?"":e)+"\n ":l+='\n <i class="'+(null==(e=n.iconClass("camera"))?"":e)+'"></i>'+(null==(e=n.t("Capture Image"))?"":e)+"\n ",l+="\n "):l+='\n <i class="'+(null==(e=n.iconClass("folder-open"))?"":e)+'"></i>'+(null==(e=n.t("Browse Files"))?"":e)+"\n ",l+='\n <span class="visually-hidden">\n '+(null==(e=n.t("Browse to attach file for "+n.component.label+". "+(n.component.description?n.component.description+". ":"")+(n.component.filePattern&&"*"!==n.component.filePattern?n.t("Allowed file types: ")+n.component.filePattern:"Any file types are allowed")))?"":e)+'\n </span>\n </a>\n <div ref="fileProcessingLoader" class="loader-wrapper">\n <div class="loader text-center"></div>\n </div>\n </div>\n '),l+="\n"),l+="\n",n.component.storage&&!n.support.hasWarning||(l+='\n <div class="alert alert-warning">\n ',n.component.storage||(l+="\n <p>"+(null==(e=n.t("No storage has been set for this field. File uploads are disabled until storage is set up."))?"":e)+"</p>\n "),l+="\n ",n.support.filereader||(l+="\n <p>"+(null==(e=n.t("File API & FileReader API not supported."))?"":e)+"</p>\n "),l+="\n ",n.support.formdata||(l+="\n <p>"+(null==(e=n.t("XHR2's FormData is not supported."))?"":e)+"</p>\n "),l+="\n ",n.support.progress||(l+="\n <p>"+(null==(e=n.t("XHR2's upload progress isn't supported."))?"":e)+"</p>\n "),l+="\n </div>\n"),l+="\n"}},k={form:function(n){var e,l="";return Array.prototype.join,l+="<"+(null==(e=n.tag)?"":e)+' class="formio-component-htmlelement '+(null==(e=n.component.className)?"":e)+'" ref="html"\n ',n.attrs.forEach(function(n){l+="\n "+(null==(e=n.attr)?"":e)+'="'+(null==(e=n.value)?"":e)+'"\n '}),l+="\n>"+(null==(e=n.builder?n.content:n.t(n.content))?"":e),n.singleTags&&-1!==n.singleTags.indexOf(n.tag)||(l+="</"+(null==(e=n.tag)?"":e)+">"),l+="\n"}},x={form:function(n){var e,l="";if(Array.prototype.join,(n.prefix||n.suffix)&&(l+='\n<div class="input-group">\n '),l+="\n ",n.prefix&&(l+='\n <div class="input-group-text" ref="prefix">\n ',n.prefix instanceof HTMLElement?l+="\n "+(null==(e=n.t(n.prefix.outerHTML,{_userInput:!0}))?"":e)+"\n ":l+="\n "+(null==(e=n.t(n.prefix,{_userInput:!0}))?"":e)+"\n ",l+="\n </div>\n "),l+="\n ",n.options.floatingLabels&&(l+='\n <div class="form-floating">\n '),l+="\n ",!n.component.editor&&!n.component.wysiwyg){l+="\n ";var t=n.instance.getFieldsetLegendIds?n.instance.getFieldsetLegendIds():"";for(var o in l+="\n <"+(null==(e=n.input.type)?"":e)+'\n ref="'+(null==(e=n.input.ref?n.input.ref:"input")?"":e)+'"\n ',n.input.attr)l+="\n "+(null==(e=o)?"":e)+'="'+(null==(e=n.input.attr[o])?"":e)+'"\n ';l+='\n id="'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n aria-labelledby="',t&&(l+=(null==(e=t)?"":e)+" "),l+="l-"+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+" ",n.component.description&&(l+="d-"+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)),l+='"\n ',(n.component.description||"number"===n.component.type||"phoneNumber"===n.component.type||"currency"===n.component.type)&&(l+='\n aria-describedby="',n.component.description&&(l+="d-"+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)),"number"!==n.component.type&&"phoneNumber"!==n.component.type&&"currency"!==n.component.type||(l+=" h-"+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)),l+='"\n '),l+='\n aria-required="'+(null==(e="input"!==n.input.ref&&n.input.ref?n.component.fields&&n.component.fields[n.input.ref]&&n.component.fields[n.input.ref].required||!1:n.component.validate.required)?"":e)+'"\n >'+(null==(e=n.input.content)?"":e)+"</"+(null==(e=n.input.type)?"":e)+">\n ",n.options.floatingLabels&&(l+='\n <label ref="label" class="col-form-label '+(null==(e=n.label.className)?"":e)+'"\n for="'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n id="l-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n >'+(null==(e=n.t(n.component.label,{_userInput:!0}))?"":e)+"</label>\n "),l+="\n ",n.hasValueMaskInput&&(l+='\n <input ref="valueMaskInput" />\n '),l+="\n"}return l+="\n",(n.component.editor||n.component.wysiwyg)&&(l+='\n <div ref="input"></div>\n'),l+="\n","number"!==n.component.type&&"phoneNumber"!==n.component.type&&"currency"!==n.component.type||(l+='\n<span id="h-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'" class="visually-hidden">'+(null==(e=n.t("numeric only"))?"":e)+"</span>\n"),l+="\n","datetime"===n.component.type&&(l+='\n<span aria-live="assertive" id="'+(null==(e=n.instance.id)?"":e)+'-liveRegion" class="visually-hidden" ref="liveRegion"></span>\n'),l+="\n",n.suffix&&(l+='\n <div class="input-group-text"\n ref="suffix"\n ',n.readOnly&&(l+='\n role="presentation"\n '),l+="\n >\n ",n.suffix instanceof HTMLElement?l+="\n "+(null==(e=n.t(n.suffix.outerHTML,{_userInput:!0}))?"":e)+"\n ":l+="\n "+(null==(e=n.t(n.suffix,{_userInput:!0}))?"":e)+"\n ",l+="\n </div>\n"),l+="\n",(n.prefix||n.suffix||n.options.floatingLabels)&&(l+="\n </div>\n"),l+='\n<span class="visually-hidden" ref="announceMessage" aria-live="polite"></span>\n',(n.component.showCharCount||n.component.showWordCount)&&(l+='\n<div class="form-text '+(null==(e=n.component.description?"float-end":"text-end")?"":e)+'">\n ',n.component.showCharCount&&(l+='\n <span class="text-muted" ref="charcount" aria-hidden="true"></span>\n '),l+="\n ",n.component.showWordCount&&(l+='\n <span class="text-muted" ref="wordcount" aria-hidden="true"></span>\n '),l+="\n</div>\n"),l+"\n"},html:function(n){var e,l="";return Array.prototype.join,l+='<div ref="value">',n.value?l+=null==(e=n.value)?"":e:l+="-",l+"</div>\n"}},C={form:function(n){var e,l="";return Array.prototype.join,l+='<label\n ref="label"\n class="col-form-label '+(null==(e=n.label.className)?"":e)+'"\n ',"radio"!==n.component.type&&(l+='\n for="'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n '),l+='\n id="l-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n>\n '+(null==(e=n.t(n.component.label,{_userInput:!0}))?"":e)+"\n ",n.component.validate&&n.component.validate.required&&(l+='\n <span class="required-star" aria-hidden="true">*</span>\n '),l+="\n ",n.component.tooltip&&(l+='\n <i ref="tooltip" tabindex="0" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+' text-muted" data-tooltip="'+(null==(e=n.component.tooltip)?"":e)+'"></i>\n '),l+"\n</label>\n"}},A={form:function(n){var e,l="";for(var t in Array.prototype.join,l+='<div\n class="input-group formio-multiple-mask-container"\n ref="'+(null==(e=n.input.ref?n.input.ref:"input")?"":e)+'"\n>\n <select\n class="form-control formio-multiple-mask-select"\n id="'+(null==(e=n.key)?"":e)+'-mask"\n ref="select"\n ',n.input.attr.disabled&&(l+="disabled"),l+=">\n ",n.selectOptions.forEach(function(n){l+='\n <option value="'+(null==(e=n.value)?"":e)+'">'+(null==(e=n.label)?"":e)+"</option>\n "}),l+='\n </select>\n <input\n ref="mask"\n ',n.input.attr)l+="\n "+(null==(e=t)?"":e)+'="'+(null==(e=n.input.attr[t])?"":e)+'"\n ';return l+="\n >\n</div>\n"}},I={form:function(n){var e,l="";return Array.prototype.join,l+='<tr ref="row">\n <td>\n '+(null==(e=n.element)?"":e)+"\n </td>\n ",n.disabled||(l+='\n <td>\n <button type="button" class="btn btn-secondary" ref="removeRow">\n <i class="'+(null==(e=n.iconClass("circle-xmark"))?"":e)+'"></i>\n </button>\n </td>\n '),l+"\n</tr>\n"}},j={form:function(n){var e,l="";return Array.prototype.join,l+='<table class="table table-bordered">\n <tbody>\n '+(null==(e=n.rows)?"":e)+"\n ",n.disabled||(l+='\n <tr>\n <td colspan="2">\n <button class="btn btn-primary formio-button-add-another" ref="addButton"><i class="'+(null==(e=n.iconClass("plus"))?"":e)+'"></i> '+(null==(e=n.t(n.addAnother,{_userInput:!0}))?"":e)+"</button>\n </td>\n </tr>\n "),l+"\n </tbody>\n</table>\n"}},z={form:function(n){var e,l="";return Array.prototype.join,l+='<div class="mb-2 card border">\n ',(!n.label.hidden||n.builder||n.component.collapsible||n.component.tooltip)&&(l+='\n <div class="card-header '+(null==(e=n.transform("class","bg-"+n.component.theme))?"":e)+'"\n ',n.component.collapsible&&(l+='\n tabindex="0"\n '),l+='\n role="'+(null==(e=n.readOnly?"presentation":"button")?"":e)+'"\n aria-expanded="'+(null==(e=!n.component.collapsible||!n.collapsed)?"":e)+'"\n aria-controls="'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n ref="header"\n >\n <span class="mb-0 card-title ',n.component.theme&&"default"!==n.component.theme&&(l+="text-light"),l+='">\n ',n.component.collapsible&&(l+='\n <i class="formio-collapse-icon '+(null==(e=n.iconClass(n.collapsed?"plus-square-o":"minus-square-o"))?"":e)+' text-muted" data-title="Collapse Panel"></i>\n '),l+="\n ",n.label.hidden&&!n.builder||(l+="\n "+(null==(e=n.t(n.component.title,{_userInput:!0}))?"":e)+"\n "),l+="\n ",n.component.tooltip&&(l+='\n <i ref="tooltip" tabindex="0" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+' text-muted" data-tooltip="'+(null==(e=n.component.tooltip)?"":e)+'"></i>\n '),l+="\n </span>\n </div>\n "),l+="\n ",n.collapsed&&!n.builder||(l+='\n <div class="card-body" ref="'+(null==(e=n.nestedKey)?"":e)+'" id="'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'">\n '+(null==(e=n.children)?"":e)+"\n </div>\n "),l+"\n</div>\n"}},E={form:function(n){var e,l="";Array.prototype.join;var t=n.instance.getFieldsetLegendIds?n.instance.getFieldsetLegendIds():"";return l+='\n<div\n class="form-radio radio"\n ref="radioGroup"\n role="'+(null==(e="selectboxes"===n.component.type?"group":"radiogroup")?"":e)+'"\n aria-required="'+(null==(e=n.input.component.validate.required)?"":e)+'"\n aria-labelledby="',t&&(l+=(null==(e=t)?"":e)+" "),l+="l-"+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n ',n.component.description&&(l+='\n aria-describedby="d-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n '),l+="\n>\n ",n.values.forEach(function(t,o){for(var a in l+='\n <div class="'+(null==(e=n.input.attr.type)?"":e)+" "+(null==(e=n.component.optionsLabelPosition&&"right"!==n.component.optionsLabelPosition?"ps-0":"")?"":e)+" form-check"+(null==(e=n.inline?"-inline":"")?"":e)+'" ref="wrapper">\n ',["left","top"].includes(n.component.optionsLabelPosition)&&(l+='\n <label class="form-check-label label-position-'+(null==(e=n.component.optionsLabelPosition)?"":e)+'" for="'+(null==(e=n.instance.root&&n.instance.root.id)?"":e)+"-"+(null==(e=n.id)?"":e)+"-"+(null==(e=n.row)?"":e)+"-"+(null==(e="object"==typeof t.value?t.value+"-"+o:t.value)?"":e)+'"><span>'+(null==(e=n.t(t.label,{_userInput:!0}))?"":e)+"</span></label>\n "),l+="\n <"+(null==(e=n.input.type)?"":e)+'\n ref="input"\n ',n.input.attr)l+="\n "+(null==(e=a)?"":e)+'="'+(null==(e=n.input.attr[a])?"":e)+'"\n ';l+='\n value="'+(null==(e=t.value)?"":e)+'"\n ',n.value&&(n.value===t.value||"object"==typeof n.value&&n.value.hasOwnProperty(t.value)&&n.value[t.value])&&(l+="\n checked=true\n "),l+="\n ",t.disabled&&(l+="\n disabled=true\n "),l+='\n id="'+(null==(e=n.instance.root&&n.instance.root.id)?"":e)+"-"+(null==(e=n.id)?"":e)+"-"+(null==(e=n.row)?"":e)+"-"+(null==(e="object"==typeof t.value?t.value+"-"+o:t.value)?"":e)+'"\n role="'+(null==(e="selectboxes"===n.component.type?"checkbox":"radio")?"":e)+'"\n >\n ',n.component.optionsLabelPosition&&!["right","bottom"].includes(n.component.optionsLabelPosition)||(l+='\n <label class="form-check-label label-position-'+(null==(e=n.component.optionsLabelPosition)?"":e)+'" for="'+(null==(e=n.instance.root&&n.instance.root.id)?"":e)+"-"+(null==(e=n.id)?"":e)+"-"+(null==(e=n.row)?"":e)+"-"+(null==(e="object"==typeof t.value?t.value+"-"+o:t.value)?"":e)+'"><span>'+(null==(e=n.t(t.label,{_userInput:!0}))?"":e)+"</span></label>\n "),l+="\n </div>\n "}),l+="\n</div>\n"},html:function(n){var e,l="";return Array.prototype.join,(l+='<div ref="value">\n ')+"\n "+(null==(e=n.values.filter(function(e){return n.value===e.value||"object"==typeof n.value&&n.value.hasOwnProperty(e.value)&&n.value[e.value]}).map(function(e){return n.t(e.label,{_userInput:!0})}).join(", "))?"":e)+"\n </div>\n"}},q={form:function(n){var e,l="";Array.prototype.join;var t=n.instance.getFieldsetLegendIds?n.instance.getFieldsetLegendIds():"";for(var o in l+='\n<select\n ref="'+(null==(e=n.input.ref?n.input.ref:"selectContainer")?"":e)+'"\n '+(null==(e=n.input.multiple?"multiple":"")?"":e)+"\n ",n.input.attr)l+="\n "+(null==(e=o)?"":e)+'="'+(null==(e=n.input.attr[o])?"":e)+'"\n ';return l+="\n ",n.input.attr.id||(l+='\n id="'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n '),l+='\n aria-labelledby="',t&&(l+=(null==(e=t)?"":e)+" "),l+="l-"+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n ',n.component.description&&(l+='\n aria-describedby="d-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'"\n '),l+='\n aria-required="'+(null==(e="selectContainer"!==n.input.ref&&n.input.ref?n.component.fields[n.input.ref].required:n.input.component.validate.required)?"":e)+'"\n>'+(null==(e=n.selectOptions)?"":e)+'</select>\n<input type="text"\n class="formio-select-autocomplete-input"\n ref="autocompleteInput"\n ',n.input.attr.autocomplete&&(l+='\n autocomplete="'+(null==(e=n.input.attr.autocomplete)?"":e)+'"\n '),l+'\n tabindex="-1"\n aria-label="'+(null==(e=n.t("autocomplete"))?"":e)+'"\n/>\n'},html:function(n){var e,l="";return Array.prototype.join,l+='<div ref="value">',n.value?l+=null==(e=n.self.itemValueForHTMLMode(n.value))?"":e:l+="-",l+"</div>\n"}},L={form:function(n){var e,l="";for(var t in Array.prototype.join,l+="<option "+(null==(e=n.selected?'selected="selected"':"")?"":e)+"\n value='"+(null==(e=n.useId?n.id:n.option.value)?"":e)+"'\n ",n.attrs)l+="\n "+(null==(e=t)?"":e)+'="'+(null==(e=n.attrs[t])?"":e)+'"\n ';return l+"\n >\n "+(null==(e=n.t(n.option.label,{_userInput:!0}))?"":e)+"\n</option>\n"},html:function(n){var e,l="";return Array.prototype.join,n.selected&&(l+=null==(e=n.t(n.option.label,{_userInput:!0}))?"":e),l+"\n"}},_={form:function(n){var e,l="";return Array.prototype.join,l+=(null==(e=n.element)?"":e)+'\n<div\n class="signature-pad-body"\n style="width: '+(null==(e=n.component.width)?"":e)+";height: "+(null==(e=n.component.height)?"":e)+';padding:0;margin:0;"\n tabindex="'+(null==(e=n.component.tabindex||0)?"":e)+'"\n ref="padBody"\n>\n <a class="btn btn-sm btn-light signature-pad-refresh" ref="refresh">\n <i class="'+(null==(e=n.iconClass("refresh"))?"":e)+'"></i>\n </a>\n <canvas class="signature-pad-canvas" style="display: none;" height="'+(null==(e=n.component.height)?"":e)+'" ref="canvas"></canvas>\n ',n.required&&(l+='\n <span class="form-control-feedback text-danger">\n <i class="'+(null==(e=n.iconClass("asterisk"))?"":e)+'"></i>\n </span>\n '),l+='\n <img style="width: 100%;display: inherit;" ref="signatureImage">\n</div>\n',n.component.footer&&(l+='\n <div class="signature-pad-footer">\n '+(null==(e=n.t(n.component.footer,{_userInput:!0}))?"":e)+"\n </div>\n"),l+"\n"},html:function(n){return'<img style="width: 100%;" ref="signatureImage">\n'}},P={form:function(n){var e,l="";Array.prototype.join;var t=n.instance.getFieldsetLegendIds?n.instance.getFieldsetLegendIds():"";return l+='\n<table class="table table-striped table-bordered" aria-labelledby="',t&&(l+=(null==(e=t)?"":e)+" "),l+="l-"+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.component.key)?"":e)+'">\n <thead>\n <tr>\n <th></th>\n ',n.component.values.forEach(function(t){l+='\n <th style="text-align: center;">\n '+(null==(e=n.t(t.label,{_userInput:!0}))?"":e)+"\n ",t.tooltip&&(l+='\n <i ref="tooltip" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+' text-muted" data-tooltip="'+(null==(e=t.tooltip)?"":e)+'"></i>\n '),l+="\n </th>\n "}),l+="\n </tr>\n </thead>\n <tbody>\n ",n.component.questions.forEach(function(t){l+="\n <tr>\n <td>\n "+(null==(e=n.t(t.label))?"":e)+"\n ",t.tooltip&&(l+='\n <i ref="tooltip" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+' text-muted" data-tooltip="'+(null==(e=t.tooltip)?"":e)+'"></i>\n '),l+="\n </td>\n ",n.component.values.forEach(function(o){l+='\n <td style="text-align: center;">\n <input type="radio" name="'+(null==(e=n.self.getInputName(t))?"":e)+'" value="'+(null==(e=o.value)?"":e)+'" id="'+(null==(e=n.key)?"":e)+"-"+(null==(e=t.value)?"":e)+"-"+(null==(e=o.value)?"":e)+'" ref="input">\n </td>\n '}),l+="\n </tr>\n "}),l+="\n </tbody>\n</table>\n"},html:function(n){var e,l="";return Array.prototype.join,l+='<table class="table table-striped table-bordered">\n <tbody>\n ',n.component.questions.forEach(function(t){l+="\n <tr>\n <th>"+(null==(e=n.t(t.label))?"":e)+"</th>\n <td>\n ",n.component.values.forEach(function(o){l+="\n ",n.value&&n.value.hasOwnProperty(t.value)&&n.value[t.value]===o.value&&(l+="\n "+(null==(e=n.t(o.label))?"":e)+"\n "),l+="\n "}),l+="\n </td>\n </tr>\n "}),l+="\n </tbody>\n</table>\n"}},R={flat:function(n){var e,l="";return Array.prototype.join,n.component.components.forEach(function(t,o){l+='\n <div class="mb-2 card border">\n <div class="card-header bg-default">\n <h4 class="mb-0 card-title">'+(null==(e=n.t(t.label,{_userInput:!0}))?"":e)+'</h4>\n </div>\n <div\n class="card-body"\n ref="'+(null==(e=n.tabKey)?"":e)+'"\n >\n '+(null==(e=n.tabComponents[o])?"":e)+"\n </div>\n </div>\n"}),l+="\n"},form:function(n){var e,l="";return Array.prototype.join,l+='<div class="card'+(null==(e=n.component.verticalLayout?" card-vertical":"")?"":e)+'">\n <div class="card-header">\n <ul class="tab-component-tabs nav nav-tabs card-header-tabs'+(null==(e=n.component.verticalLayout?" nav-tabs-vertical":"")?"":e)+'" role="tablist">\n ',n.component.components.forEach(function(t,o){l+='\n <li class="nav-item'+(null==(e=n.currentTab===o?" active":"")?"":e)+'" role="tab" ref="'+(null==(e=n.tabLikey)?"":e)+'">\n <a\n class="nav-link'+(null==(e=n.currentTab===o?" active":"")?"":e)+(null==(e=n.component.verticalLayout?" nav-link-vertical":"")?"":e)+'"\n href="#'+(null==(e=t.key)?"":e)+'"\n ref="'+(null==(e=n.tabLinkKey)?"":e)+'"\n >\n '+(null==(e=n.t(t.label,{_userInput:!0}))?"":e)+"\n </a>\n </li>\n "}),l+="\n </ul>\n </div>\n ",n.component.components.forEach(function(t,o){l+='\n <div\n role="tabpanel"\n class="card-body tab-pane"\n style="display: '+(null==(e=n.currentTab===o?"block":"none")?"":e)+'"\n ref="'+(null==(e=n.tabKey)?"":e)+'"\n >\n '+(null==(e=n.tabComponents[o])?"":e)+"\n </div>\n "}),l+="\n</div>\n"}},K={form:function(n){var e,l="";return Array.prototype.join,l+='<table class="table\n '+(null==(e=n.component.striped?"table-striped":"")?"":e)+"\n "+(null==(e=n.component.bordered?"table-bordered":"")?"":e)+"\n "+(null==(e=n.component.hover?"table-hover":"")?"":e)+"\n "+(null==(e=n.component.condensed?"table-sm":"")?"":e)+'\n ">\n <caption class="visually-hidden">'+(null==(e=n.t(n.component.label))?"":e)+"</caption>\n ",n.component.header&&n.component.header.length>0&&(l+="\n <thead>\n <tr>\n ",n.component.header.forEach(function(t){l+="\n <th>"+(null==(e=n.t(t))?"":e)+"</th>\n "}),l+="\n </tr>\n </thead>\n "),l+="\n <tbody>\n ",n.tableComponents.forEach(function(t,o){l+='\n <tr ref="row-'+(null==(e=n.id)?"":e)+'">\n ',t.forEach(function(t,a){l+='\n <td ref="'+(null==(e=n.tableKey)?"":e)+"-"+(null==(e=o)?"":e)+'"',n.cellClassName&&(l+=' class="'+(null==(e=n.cellClassName)?"":e)+'"'),l+=">"+(null==(e=t)?"":e)+"</td>\n "}),l+="\n </tr>\n "}),l+="\n </tbody>\n</table>\n"}},N={form:function(n){var e,l="";return Array.prototype.join,n.node.isRoot?l+='\n <div ref="root" class="list-group-item">\n':l+='\n <li ref="node" class="list-group-item col-sm-12 tree__level tree__level_'+(null==(e=n.odd?"odd":"even")?"":e)+'">\n',l+="\n ",n.content&&(l+='\n <div ref="content" class="tree__node-content">\n '+(null==(e=n.content)?"":e)+"\n </div>\n "),l+="\n ",n.childNodes&&n.childNodes.length&&(l+='\n <ul ref="childNodes" class="tree__node-children list-group row">\n '+(null==(e=n.childNodes.join(""))?"":e)+"\n </ul>\n "),l+="\n",n.node.isRoot?l+="\n </div>\n":l+="\n </li>\n",l+"\n"}},T={treeView:{form:function(n){var e,l="";return Array.prototype.join,l+='<div class="row">\n ',n.values.forEach(function(n){l+='\n <div class="col-sm-2">\n '+(null==(e=n)?"":e)+"\n </div>\n "}),l+='\n <div class="col-sm-3">\n <div class="btn-group pull-right">\n ',n.node.hasChildren&&(l+='\n <button ref="toggleNode" class="btn btn-default btn-sm toggleNode">'+(null==(e=n.t(n.node.collapsed?"Expand":"Collapse"))?"":e)+"</button>\n "),l+="\n ",n.readOnly||(l+='\n <button ref="addChild" class="btn btn-default btn-sm addChild">'+(null==(e=n.t("Add"))?"":e)+'</button>\n <button ref="editNode" class="btn btn-default btn-sm editNode">'+(null==(e=n.t("Edit"))?"":e)+'</button>\n <button ref="removeNode" class="btn btn-danger btn-sm removeNode">'+(null==(e=n.t("Delete"))?"":e)+"</button>\n ",n.node.revertAvailable&&(l+='\n <button ref="revertNode" class="btn btn-danger btn-sm revertNode">'+(null==(e=n.t("Revert"))?"":e)+"</button>\n "),l+="\n "),l+="\n </div>\n </div>\n</div>\n"}},treeEdit:{form:function(n){var e,l="";return Array.prototype.join,l+='<div class="node-edit">\n <div ref="nodeEdit">'+(null==(e=n.children)?"":e)+"</div>\n ",n.readOnly||(l+='\n <div class="node-actions">\n <button ref="saveNode" class="btn btn-primary saveNode">'+(null==(e=n.t("Save"))?"":e)+'</button>\n <button ref="cancelNode" class="btn btn-danger cancelNode">'+(null==(e=n.t("Cancel"))?"":e)+"</button>\n </div>\n "),l+"\n</div>\n"}}},S={form:function(n){var e,l="";return Array.prototype.join,l+='<div class="'+(null==(e=n.className)?"":e)+'">\n <div style="position: relative;">\n ',"wizardHeaderVertical"===n.wizardHeaderType?(l+='\n <div class="row">\n ',"right"!==n.wizardHeaderLocation&&(l+='\n <div class="col-sm-2">\n '+(null==(e=n.wizardHeader)?"":e)+"\n </div>\n "),l+='\n <div class="wizard-page col-sm-10" ref="'+(null==(e=n.wizardKey)?"":e)+'">\n '+(null==(e=n.components)?"":e)+"\n </div>\n ","right"===n.wizardHeaderLocation&&(l+='\n <div class="col-sm-2">\n '+(null==(e=n.wizardHeader)?"":e)+"\n </div>\n "),l+='\n </div>\n <div class="col-sm-offset-2 col-sm-10 '+(null==(e="right"===n.wizardHeaderLocation?"col-sm-offset-0 col-md-offset-0":"")?"":e)+'">\n '+(null==(e=n.wizardNav)?"":e)+"\n </div>\n "):l+="\n "+(null==(e=n.wizardHeader)?"":e)+'\n <div class="wizard-page" ref="'+(null==(e=n.wizardKey)?"":e)+'">\n '+(null==(e=n.components)?"":e)+"\n </div>\n "+(null==(e=n.wizardNav)?"":e)+"\n ",l+"\n </div>\n</div>\n"},builder:function(n){var e;return""+'<div class="text-muted text-center p-2">'+(null==(e=n.t(n.component.title,{_userInput:!0}))?"":e)+"</div>\n"}},B={form:function(n){var e,l="";return Array.prototype.join,l+='<nav aria-label="Wizard navigation" id="'+(null==(e=n.wizardKey)?"":e)+'-header" ref="'+(null==(e=n.wizardKey)?"":e)+'-header">\n <ul class="pagination" role="tablist">\n ',n.panels.forEach(function(t,o){l+='\n <li class="page-item'+(null==(e=n.currentPage===o?" active":"")?"":e)+'" style="cursor: pointer;">\n <button tabindex="0" data-index="'+(null==(e=o)?"":e)+'" role="tab" class="page-link" ref="'+(null==(e=n.wizardKey)?"":e)+'-link">\n '+(null==(e=n.t(t.title,{_userInput:!0}))?"":e)+"\n ",t.tooltip&&n.currentPage===o&&(l+='\n <i ref="'+(null==(e=n.wizardKey)?"":e)+'-tooltip" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+' text-muted" data-tooltip="'+(null==(e=t.tooltip)?"":e)+'"></i>\n '),l+="\n </button>\n </li>\n "}),l+="\n </ul>\n</nav>\n"}},M={form:function(n){var e,l="";return Array.prototype.join,l+='<nav aria-label="navigation" id="'+(null==(e=n.wizardKey)?"":e)+'-header">\n <div class="classic-pagination row justify-content-center" style="border-bottom:0;">\n ',n.panels.forEach(function(t,o){l+='\n <div class="classic-pagination-page col-xs-12 col-sm-6 col-md-3\n '+(null==(e=n.currentPage<o?" disabled":"")?"":e)+"\n "+(null==(e=n.currentPage===o?" active":"")?"":e)+"\n "+(null==(e=n.currentPage>o?" complete":"")?"":e)+'">\n <div class="text-center classic-pagination-title">'+(null==(e=n.t(t.title,{_userInput:!0}))?"":e)+"</div>\n ",n.panels.length>1&&(l+='\n <div class="progress"><div class="progress-bar"></div></div>\n '),l+=' \n <span ref="'+(null==(e=n.wizardKey)?"":e)+'-link" class="classic-pagination-dot"></span>\n </div>\n '}),l+="\n </div>\n</nav>\n"}},F={form:function(n){var e,l="";return Array.prototype.join,l+='<nav aria-label="navigation" id="'+(null==(e=n.wizardKey)?"":e)+'-header">\n <ul class="pagination flex-column">\n ',n.panels.forEach(function(t,o){l+='\n <li class="col-xs-12 page-item'+(null==(e=n.currentPage===o?" active":"")?"":e)+'" style="cursor: pointer;">\n <span class="page-link" ref="'+(null==(e=n.wizardKey)?"":e)+'-link" style="margin-left: 0px;">\n '+(null==(e=n.t(t.title,{_userInput:!0}))?"":e)+"\n ",t.tooltip&&n.currentPage===o&&(l+='\n <i ref="'+(null==(e=n.wizardKey)?"":e)+'-tooltip" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+' text-muted" data-tooltip="'+(null==(e=t.tooltip)?"":e)+'"></i>\n '),l+="\n </span>\n </li>\n "}),l+="\n </ul>\n</nav>\n"}},O={form:function(n){var e,l="";return Array.prototype.join,l+='<ul class="formio-wizard-nav-container list-inline" id="'+(null==(e=n.wizardKey)?"":e)+'-nav">\n ',n.buttonOrder.forEach(function(t){l+="\n ","cancel"===t&&n.buttons.cancel&&(l+='\n <li>\n <button class="btn btn-secondary btn-wizard-nav-cancel" ref="'+(null==(e=n.wizardKey)?"":e)+'-cancel" aria-label="'+(null==(e=n.t("cancelButtonAriaLabel"))?"":e)+'">'+(null==(e=n.t("cancel"))?"":e)+"</button>\n </li>\n "),l+="\n ","previous"===t&&n.buttons.previous&&(l+='\n <li>\n <button class="btn btn-primary btn-wizard-nav-previous" ref="'+(null==(e=n.wizardKey)?"":e)+'-previous" aria-label="'+(null==(e=n.t("previousButtonAriaLabel"))?"":e)+'">'+(null==(e=n.t("previous"))?"":e)+"</button>\n </li>\n "),l+="\n ","next"===t&&n.buttons.next&&(l+='\n <li>\n <button class="btn btn-primary btn-wizard-nav-next" ref="'+(null==(e=n.wizardKey)?"":e)+'-next" aria-label="'+(null==(e=n.t("nextButtonAriaLabel"))?"":e)+'">'+(null==(e=n.t("next"))?"":e)+"</button>\n </li>\n "),l+="\n ","submit"===t&&n.buttons.submit&&(l+="\n <li>\n ",n.disableWizardSubmit?l+='\n <button disabled class="btn btn-primary btn-wizard-nav-submit" ref="'+(null==(e=n.wizardKey)?"":e)+'-submit" aria-label="'+(null==(e=n.t("submitButtonAriaLabel"))?"":e)+'">'+(null==(e=n.t("submit"))?"":e)+"</button>\n ":l+='\n <button class="btn btn-primary btn-wizard-nav-submit" ref="'+(null==(e=n.wizardKey)?"":e)+'-submit" aria-label="'+(null==(e=n.t("submitButtonAriaLabel"))?"":e)+'">'+(null==(e=n.t("submit"))?"":e)+"</button>\n ",l+="\n </li>\n "),l+="\n "}),l+="\n</ul>\n"}},H={form:function(n){var e,l="";return Array.prototype.join,l+="<p>"+(null==(e=n.t("error"))?"":e)+"\n ",n.options.vpat&&(l+='\n <span ref="errorTooltip" class="'+(null==(e=n.iconClass("question-sign"))?"":e)+'" tabindex="0"></span>\n '),l+="\n</p>\n<ul>\n ",n.errors.forEach(function(n){l+='\n <li>\n <span\n data-component-key = "'+(null==(e=n.keyOrPath)?"":e)+'"\n ref = "errorRef"\n tabIndex = "0"\n role="link"\n >\n '+(null==(e=n.message)?"":e)+"\n </span>\n </li>\n "}),l+="\n</ul>\n"}},D={form:function(n){var e,l="";for(var t in Array.prototype.join,l+="<div\n ",n.attrs)l+="\n "+(null==(e=t)?"":e)+'="'+(null==(e=n.attrs[t])?"":e)+'"\n ';return l+="\n ","success"!==n.type||n.attrs["aria-live"]||(l+='\n aria-live="polite"\n aria-atomic="true"\n '),l+="\n>\n "+(null==(e=n.message)?"":e)+"\n ",n.options.vpat&&(l+='\n <span class="visually-hidden" id="hotkey-i-'+(null==(e=n.form._id)?"":e)+'">'+(null==(e=n.t("errorListHotkey"))?"":e)+"</span>\n "),l+"\n</div>\n"}},V={framework:"bootstrap5",templates:{bootstrap5:{transform(n,e,l){if(!e)return e;if("class"===n){let n="";return"form-group"===e&&(n="mb-2 ",l&&l.component.block&&(n+="d-grid ")),`${n}${this.cssClasses.hasOwnProperty(e.toString())?this.cssClasses[e.toString()]:e}`}return e},defaultIconset:"bi",iconClass:(n,e,l)=>{let t=e;if("bi"===n)switch(e){case"cog":t="gear";break;case"copy":t="back";break;case"bars":t="list";break;case"remove":t="trash";break;case"font":t="type";break;case"hashtag":t="hash";break;case"th-list":t="menu-button-wide";break;case"dot-circle-o":t="ui-radios";break;case"plus-square-o":t="plus-square";break;case"minus-square-o":t="dash-square";break;case"plus-square":t="ui-checks";break;case"phone-square":t="phone";break;case"home":t="house";break;case"clock-o":case"time":t="clock";break;case"usd":t="currency-dollar";break;case"html5":t="file-richtext";break;case"pencil-square-o":t="pencil-square";break;case"columns":t="layout-three-columns";break;case"list-alt":t="window";break;case"th-large":t="grid-fill";break;case"folder-o":t="folder";break;case"square-o":t="square";break;case"user-secret":t="person-fill-slash";break;case"folder-open":case"folder-open":t="folder2-open";break;case"th":t="grid-3x3-gap-fill";break;case"tasks":t="view-stacked";break;case"indent":t="text-indent-left";break;case"refresh":t="arrow-repeat";break;case"files-o":t="files";break;case"wpforms":t="window-stack";break;case"cube":t="box";break;case"cubes":t="boxes";break;case"check-square-o":t="check-square";break;case"plus":t="plus-lg";break;case"question-sign":e="question-circle",t="question-circle";break;case"remove-circle":case"circle-xmark":t="x-circle";break;case"new-window":e="window-restore",t="window-plus";break;case"move":e="arrows",t="arrows-move";break;case"edit":t="pencil";break;case"video":t="camera-video";break;case"microphone":t="mic";break;case"check-circle":t="check-circle-fill";break;case"times-circle":t="x-circle-fill";break;case"pencil":t="pencil-fill";break;case"minus":t="dash";break;case"circle":t="circle-fill";break;case"search-plus":t="zoom-in";break;case"search-minus":t="zoom-out";break;case"hand-paper-o":t="hand-index";break;case"undo":t="arrow-counterclockwise";break;case"repeat":t="arrow-clockwise"}return l?"spinner-border spinner-border-sm":`${n} ${"circle-xmark"===t?`${n}-${t} ${n}-remove-circle`:`${n}-${t}`}`},cssClasses:{"border-default":"","formio-tab-panel-active":"active","formio-tab-link-active":"active","formio-tab-link-container-active":"active","formio-form-error":"formio-error-wrapper has-message","formio-form-alert":"alert alert-danger","formio-label-error":"","formio-input-error":"","formio-alert-danger":"alert alert-danger","formio-alert-success":"alert alert-success","formio-alert-warning":"alert alert-warning","formio-modal-cancel-button":"btn btn-danger formio-dialog-button","formio-modal-confirm-button":"btn btn-primary formio-dialog-button","form-group":"formio-form-group"},address:l,builder:{form:function(n){var e;return""+'<div class="formio builder row formbuilder">\n <div class="col-xs-4 col-sm-3 col-md-2 formcomponents">\n '+(null==(e=n.sidebar)?"":e)+'\n </div>\n <div class="col-xs-8 col-sm-9 col-md-10 formarea" ref="form">\n '+(null==(e=n.form)?"":e)+"\n </div>\n</div>\n"}},builderComponent:t,builderComponents:{form:function(n){var e;return""+'<div class="builder-components drag-container formio-builder-'+(null==(e=n.type)?"":e)+'" ref="'+(null==(e=n.key)?"":e)+'-container">\n '+(null==(e=n.html)?"":e)+"\n</div>\n"}},builderEditForm:o,builderPlaceholder:{form:function(n){var e;return""+'<div\n class="drag-and-drop-alert alert alert-info no-drag"\n style="text-align:center;"\n role="alert"\n data-noattach="true"\n data-position="'+(null==(e=n.position)?"":e)+'"\n>\n '+(null==(e=n.t("Drag and Drop a form component"))?"":e)+"\n</div>\n"}},builderSidebar:a,builderSidebarGroup:r,builderWizard:i,button:s,checkbox:u,columns:d,component:c,componentModal:p,components:{form:function(n){var e;return""+((null==(e=n.children.join(""))?"":e)+"\n")}},tableComponents:b,container:{form:function(n){var e;return""+'<div ref="'+(null==(e=n.nestedKey)?"":e)+'">\n '+(null==(e=n.children)?"":e)+"\n</div>\n"}},datagrid:m,day:f,dialog:{form:function(n){return'<div class="formio-dialog formio-dialog-theme-default component-settings">\n <div class="formio-dialog-overlay" ref="dialogOverlay"></div>\n <div class="formio-dialog-content" ref="dialogContents" role="dialog">\n <div ref="dialogContents"></div>\n <button class="formio-dialog-close float-end btn-sm" aria-label="Close modal window." ref="dialogClose"></button>\n </div>\n</div>\n'}},editgrid:v,editgridTable:y,field:g,fieldset:h,file:w,html:k,icon:{form:function(n){var e;return""+'<i ref="'+(null==(e=n.ref)?"":e)+'" class="'+(null==(e=n.className)?"":e)+'" style="'+(null==(e=n.styles)?"":e)+'">'+(null==(e=n.content)?"":e)+"</i>\n"}},input:x,label:C,loader:{form:function(n){return'<div class="formio-loader">\n <div class="loader-wrapper">\n <div class="loader text-center"></div>\n </div> \n</div>\n'}},loading:{form:function(n){return"Loading...\n"}},map:{form:function(n){var e;return""+'<div id="'+(null==(e=n.mapId)?"":e)+'" style="min-height: 300px; height: calc(100vh - 600px);" ref="gmapElement"></div>\n'}},message:{form:function(n){var e;return""+'<div id="e-'+(null==(e=n.instance.id)?"":e)+"-"+(null==(e=n.key)?"":e)+'" class="form-text '+(null==(e=n.level||"error")?"":e)+'">'+(null==(e=n.message)?"":e)+"</div>\n"}},modaledit:{form:function(n){var e;return""+'<div ref="container" class="formio-modaledit-view-container">\n <button\n ref="edit"\n type="button"\n role="button"\n class="btn btn-xxs btn-warning formio-modaledit-edit">\n <i class="'+(null==(e=n.iconClass("edit"))?"":e)+'"></i>\n </button>\n <div ref="input" class="modaledit-view-inner reset-margins">'+(null==(e=n.content)?"":e)+"</div>\n</div>\n"}},modaldialog:{form:function(n){var e;return""+'<div class="formio-dialog formio-dialog-theme-default formio-modaledit-dialog">\n <div ref="overlay" class="formio-dialog-overlay"></div>\n <div ref="content" class="formio-modaledit-content">\n <button\n ref="close"\n type="button"\n role="button"\n class="btn btn-primary btn-xs formio-modaledit-close">\n '+(null==(e=n.t("Close"))?"":e)+'\n </button>\n <div ref="inner" class="reset-margins"></div>\n </div>\n</div>\n'}},modalPreview:{form:function(n){var e;return""+'<label id="l-'+(null==(e=n.component.key)?"":e)+'" class="control-label '+(null==(e=n.label.className)?"":e)+'">\n '+(null==(e=n.t(n.component.label,{_userInput:!0}))?"":e)+'<span ref="modalLabelValue" class="visually-hidden">. '+(null==(e="signature"===n.component.type?n.self.getValueAsString(n.previewText):n.previewText)?"":e)+'</span>\n</label><br>\n<span class="visually-hidden" ref="modalPreviewLiveRegion" aria-live="assertive"></span>\n<button\n lang="en"\n class="btn btn-light btn-md open-modal-button form-control '+(null==(e=n.openModalBtnClasses||"")?"":e)+'"\n ref="openModal"\n aria-labelledby="l-'+(null==(e=n.component.key)?"":e)+'"\n>\n '+(null==(e=n.previewText)?"":e)+'\n</button>\n<div class="formio-errors invalid-feedback">\n '+(null==(e=n.messages)?"":e)+"\n</div>\n"}},multipleMasksInput:A,multiValueRow:I,multiValueTable:j,panel:z,pdf:{form:function(n){var e;return""+'<div class="'+(null==(e=n.classes)?"":e)+'" ref="webform">\n\t<span data-noattach="true" ref="zoomIn" style="position:absolute;right:10px;top:10px;cursor:pointer;" class="btn btn-default btn-secondary no-disable">\n\t\t<i class="'+(null==(e=n.iconClass("zoom-in"))?"":e)+'"></i>\n\t</span>\n\t<span data-noattach="true" ref="zoomOut" style="position:absolute;right:10px;top:60px;cursor:pointer;" class="btn btn-default btn-secondary no-disable">\n\t\t<i class="'+(null==(e=n.iconClass("zoom-out"))?"":e)+'"></i>\n\t</span>\n <div data-noattach="true" ref="iframeContainer"></div>\n '+(null==(e=n.submitButton)?"":e)+"\n</div>\n"}},pdfBuilder:{form:function(n){var e;return""+'<div class="formio builder row formbuilder">\n <div class="col-xs-4 col-sm-3 col-md-2 formcomponents">\n '+(null==(e=n.sidebar)?"":e)+'\n </div>\n <div class="col-xs-8 col-sm-9 col-md-10 formarea" ref="form">\n\t <div class="formio-drop-zone" ref="iframeDropzone"></div>\n '+(null==(e=n.form)?"":e)+"\n </div>\n</div>\n"}},pdfBuilderUpload:{form:function(n){var e;return""+'<div class="pdf-upload formio-component-file">\n <h3 class="label">'+(null==(e=n.t("Upload a PDF File"))?"":e)+'</h3>\n <input type="file" style="opacity: 0; position: absolute;" tabindex="-1" accept=".pdf" ref="hiddenFileInputElement">\n <div class="fileSelector" ref="fileDrop">\n <span ref="dragDropText">\n <i class="'+(null==(e=n.iconClass("cloud-upload"))?"":e)+'"></i>'+(null==(e=n.t("Drop pdf to start, or"))?"":e)+' <a href="#" ref="fileBrowse" class="browse">'+(null==(e=n.t("browse"))?"":e)+'</a>\n </span>\n <div class="progress pdf-progress" ref="uploadProgressWrapper" style="display:none;">\n <div class="progress-bar" ref="uploadProgress" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>\n </div>\n </div>\n <div class="alert alert-danger" ref="uploadError">\n\n </div>\n</div>\n\n'}},radio:E,resourceAdd:{form:function(n){var e;return""+'<table class="table table-bordered">\n <tbody>\n <tr>\n <td>\n '+(null==(e=n.element)?"":e)+'\n </td>\n </tr>\n <tr>\n <td colspan="2">\n <button class="btn btn-primary formio-button-add-resource" ref="addResource">\n <i class="'+(null==(e=n.iconClass("plus"))?"":e)+'"></i>\n '+(null==(e=n.t(n.component.addResourceLabel||"Add Resource",{_userInput:!0}))?"":e)+"\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n"}},select:q,selectOption:L,signature:_,survey:P,tab:R,table:K,tree:N,...T,webform:{form:function(n){var e;return""+'<div class="'+(null==(e=n.classes)?"":e)+'" ref="webform" novalidate>'+(null==(e=n.children)?"":e)+"</div>\n"},builder:function(n){var e;return""+'<div class="text-muted text-center p-2">'+(null==(e=n.t(n.component.title,{_userInput:!0}))?"":e)+"</div>\n"}},well:{form:function(n){var e;return""+'<div class="card card-body bg-light mb-3">\n <div ref="'+(null==(e=n.nestedKey)?"":e)+'">\n '+(null==(e=n.children)?"":e)+"\n </div>\n</div>\n"}},wizard:S,wizardHeader:B,wizardHeaderClassic:M,wizardHeaderVertical:F,wizardNav:O,errorsList:H,alert:D}}};return e.default})());
32570
+ </script>
32571
+ <script>
32572
+ var filtrex = (function (exports) {
32573
+ "use strict";
32574
+
32575
+ function _arrayLikeToArray(r, a) {
32576
+ (null == a || a > r.length) && (a = r.length);
32577
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
32578
+ return n;
32579
+ }
32580
+ function _arrayWithoutHoles(r) {
32581
+ if (Array.isArray(r)) return _arrayLikeToArray(r);
32582
+ }
32583
+ function _assertThisInitialized(e) {
32584
+ if (void 0 === e)
32585
+ throw new ReferenceError(
32586
+ "this hasn't been initialised - super() hasn't been called",
32587
+ );
32588
+ return e;
32589
+ }
32590
+ function _callSuper(t, o, e) {
32591
+ return (
32592
+ (o = _getPrototypeOf(o)),
32593
+ _possibleConstructorReturn(
32594
+ t,
32595
+ _isNativeReflectConstruct()
32596
+ ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor)
32597
+ : o.apply(t, e),
32598
+ )
32599
+ );
32600
+ }
32601
+ function _classCallCheck(a, n) {
32602
+ if (!(a instanceof n))
32603
+ throw new TypeError("Cannot call a class as a function");
32604
+ }
32605
+ function _construct(t, e, r) {
32606
+ if (_isNativeReflectConstruct())
32607
+ return Reflect.construct.apply(null, arguments);
32608
+ var o = [null];
32609
+ o.push.apply(o, e);
32610
+ var p = new (t.bind.apply(t, o))();
32611
+ return r && _setPrototypeOf(p, r.prototype), p;
32612
+ }
32613
+ function _defineProperties(e, r) {
32614
+ for (var t = 0; t < r.length; t++) {
32615
+ var o = r[t];
32616
+ (o.enumerable = o.enumerable || !1),
32617
+ (o.configurable = !0),
32618
+ "value" in o && (o.writable = !0),
32619
+ Object.defineProperty(e, _toPropertyKey(o.key), o);
32620
+ }
32621
+ }
32622
+ function _createClass(e, r, t) {
32623
+ return (
32624
+ r && _defineProperties(e.prototype, r),
32625
+ t && _defineProperties(e, t),
32626
+ Object.defineProperty(e, "prototype", {
32627
+ writable: !1,
32628
+ }),
32629
+ e
32630
+ );
32631
+ }
32632
+ function _createForOfIteratorHelper(r, e) {
32633
+ var t =
32634
+ ("undefined" != typeof Symbol && r[Symbol.iterator]) || r["@@iterator"];
32635
+ if (!t) {
32636
+ if (
32637
+ Array.isArray(r) ||
32638
+ (t = _unsupportedIterableToArray(r)) ||
32639
+ (e && r && "number" == typeof r.length)
32640
+ ) {
32641
+ t && (r = t);
32642
+ var n = 0,
32643
+ F = function () {};
32644
+ return {
32645
+ s: F,
32646
+ n: function () {
32647
+ return n >= r.length
32648
+ ? {
32649
+ done: !0,
32650
+ }
32651
+ : {
32652
+ done: !1,
32653
+ value: r[n++],
32654
+ };
32655
+ },
32656
+ e: function (r) {
32657
+ throw r;
32658
+ },
32659
+ f: F,
32660
+ };
32661
+ }
32662
+ throw new TypeError(
32663
+ "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.",
32664
+ );
32665
+ }
32666
+ var o,
32667
+ a = !0,
32668
+ u = !1;
32669
+ return {
32670
+ s: function () {
32671
+ t = t.call(r);
32672
+ },
32673
+ n: function () {
32674
+ var r = t.next();
32675
+ return (a = r.done), r;
32676
+ },
32677
+ e: function (r) {
32678
+ (u = !0), (o = r);
32679
+ },
32680
+ f: function () {
32681
+ try {
32682
+ a || null == t.return || t.return();
32683
+ } finally {
32684
+ if (u) throw o;
32685
+ }
32686
+ },
32687
+ };
32688
+ }
32689
+ function _defineProperty(e, r, t) {
32690
+ return (
32691
+ (r = _toPropertyKey(r)) in e
32692
+ ? Object.defineProperty(e, r, {
32693
+ value: t,
32694
+ enumerable: !0,
32695
+ configurable: !0,
32696
+ writable: !0,
32697
+ })
32698
+ : (e[r] = t),
32699
+ e
32700
+ );
32701
+ }
32702
+ function _getPrototypeOf(t) {
32703
+ return (
32704
+ (_getPrototypeOf = Object.setPrototypeOf
32705
+ ? Object.getPrototypeOf.bind()
32706
+ : function (t) {
32707
+ return t.__proto__ || Object.getPrototypeOf(t);
32708
+ }),
32709
+ _getPrototypeOf(t)
32710
+ );
32711
+ }
32712
+ function _inherits(t, e) {
32713
+ if ("function" != typeof e && null !== e)
32714
+ throw new TypeError("Super expression must either be null or a function");
32715
+ (t.prototype = Object.create(e && e.prototype, {
32716
+ constructor: {
32717
+ value: t,
32718
+ writable: !0,
32719
+ configurable: !0,
32720
+ },
32721
+ })),
32722
+ Object.defineProperty(t, "prototype", {
32723
+ writable: !1,
32724
+ }),
32725
+ e && _setPrototypeOf(t, e);
32726
+ }
32727
+ function _isNativeFunction(t) {
32728
+ try {
32729
+ return -1 !== Function.toString.call(t).indexOf("[native code]");
32730
+ } catch (n) {
32731
+ return "function" == typeof t;
32732
+ }
32733
+ }
32734
+ function _isNativeReflectConstruct() {
32735
+ try {
32736
+ var t = !Boolean.prototype.valueOf.call(
32737
+ Reflect.construct(Boolean, [], function () {}),
32738
+ );
32739
+ } catch (t) {}
32740
+ return (_isNativeReflectConstruct = function () {
32741
+ return !!t;
32742
+ })();
32743
+ }
32744
+ function _iterableToArray(r) {
32745
+ if (
32746
+ ("undefined" != typeof Symbol && null != r[Symbol.iterator]) ||
32747
+ null != r["@@iterator"]
32748
+ )
32749
+ return Array.from(r);
32750
+ }
32751
+ function _nonIterableSpread() {
32752
+ throw new TypeError(
32753
+ "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.",
32754
+ );
32755
+ }
32756
+ function _possibleConstructorReturn(t, e) {
32757
+ if (e && ("object" == typeof e || "function" == typeof e)) return e;
32758
+ if (void 0 !== e)
32759
+ throw new TypeError(
32760
+ "Derived constructors may only return object or undefined",
32761
+ );
32762
+ return _assertThisInitialized(t);
32763
+ }
32764
+ function _setPrototypeOf(t, e) {
32765
+ return (
32766
+ (_setPrototypeOf = Object.setPrototypeOf
32767
+ ? Object.setPrototypeOf.bind()
32768
+ : function (t, e) {
32769
+ return (t.__proto__ = e), t;
32770
+ }),
32771
+ _setPrototypeOf(t, e)
32772
+ );
32773
+ }
32774
+ function _toConsumableArray(r) {
32775
+ return (
32776
+ _arrayWithoutHoles(r) ||
32777
+ _iterableToArray(r) ||
32778
+ _unsupportedIterableToArray(r) ||
32779
+ _nonIterableSpread()
32780
+ );
32781
+ }
32782
+ function _toPrimitive(t, r) {
32783
+ if ("object" != typeof t || !t) return t;
32784
+ var e = t[Symbol.toPrimitive];
32785
+ if (void 0 !== e) {
32786
+ var i = e.call(t, r || "default");
32787
+ if ("object" != typeof i) return i;
32788
+ throw new TypeError("@@toPrimitive must return a primitive value.");
32789
+ }
32790
+ return ("string" === r ? String : Number)(t);
32791
+ }
32792
+ function _toPropertyKey(t) {
32793
+ var i = _toPrimitive(t, "string");
32794
+ return "symbol" == typeof i ? i : i + "";
32795
+ }
32796
+ function _typeof(o) {
32797
+ "@babel/helpers - typeof";
32798
+
32799
+ return (
32800
+ (_typeof =
32801
+ "function" == typeof Symbol && "symbol" == typeof Symbol.iterator
32802
+ ? function (o) {
32803
+ return typeof o;
32804
+ }
32805
+ : function (o) {
32806
+ return o &&
32807
+ "function" == typeof Symbol &&
32808
+ o.constructor === Symbol &&
32809
+ o !== Symbol.prototype
32810
+ ? "symbol"
32811
+ : typeof o;
32812
+ }),
32813
+ _typeof(o)
32814
+ );
32815
+ }
32816
+ function _unsupportedIterableToArray(r, a) {
32817
+ if (r) {
32818
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
32819
+ var t = {}.toString.call(r).slice(8, -1);
32820
+ return (
32821
+ "Object" === t && r.constructor && (t = r.constructor.name),
32822
+ "Map" === t || "Set" === t
32823
+ ? Array.from(r)
32824
+ : "Arguments" === t ||
32825
+ /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)
32826
+ ? _arrayLikeToArray(r, a)
32827
+ : void 0
32828
+ );
32829
+ }
32830
+ }
32831
+ function _wrapNativeSuper(t) {
32832
+ var r = "function" == typeof Map ? new Map() : void 0;
32833
+ return (
32834
+ (_wrapNativeSuper = function (t) {
32835
+ if (null === t || !_isNativeFunction(t)) return t;
32836
+ if ("function" != typeof t)
32837
+ throw new TypeError(
32838
+ "Super expression must either be null or a function",
32839
+ );
32840
+ if (void 0 !== r) {
32841
+ if (r.has(t)) return r.get(t);
32842
+ r.set(t, Wrapper);
32843
+ }
32844
+ function Wrapper() {
32845
+ return _construct(t, arguments, _getPrototypeOf(this).constructor);
32846
+ }
32847
+ return (
32848
+ (Wrapper.prototype = Object.create(t.prototype, {
32849
+ constructor: {
32850
+ value: Wrapper,
32851
+ enumerable: !1,
32852
+ writable: !0,
32853
+ configurable: !0,
32854
+ },
32855
+ })),
32856
+ _setPrototypeOf(Wrapper, t)
32857
+ );
32858
+ }),
32859
+ _wrapNativeSuper(t)
32860
+ );
32861
+ }
32862
+
32863
+ /* Jison generated parser */
32864
+ var _parser = (function () {
32865
+ var parser = {
32866
+ trace: function trace() {},
32867
+ yy: {},
32868
+ symbols_: {
32869
+ error: 2,
32870
+ expressions: 3,
32871
+ e: 4,
32872
+ EndOfExpression: 5,
32873
+ "-": 6,
32874
+ "+": 7,
32875
+ "*": 8,
32876
+ "/": 9,
32877
+ "^": 10,
32878
+ mod: 11,
32879
+ and: 12,
32880
+ or: 13,
32881
+ not: 14,
32882
+ if: 15,
32883
+ then: 16,
32884
+ else: 17,
32885
+ in: 18,
32886
+ notIn: 19,
32887
+ "(": 20,
32888
+ ")": 21,
32889
+ Arguments: 22,
32890
+ ",": 23,
32891
+ Number: 24,
32892
+ Symbol: 25,
32893
+ String: 26,
32894
+ of: 27,
32895
+ Relation: 28,
32896
+ "%": 29,
32897
+ "?": 30,
32898
+ ":": 31,
32899
+ RelationalOperator: 32,
32900
+ "==": 33,
32901
+ "!=": 34,
32902
+ "~=": 35,
32903
+ "<": 36,
32904
+ "<=": 37,
32905
+ ">=": 38,
32906
+ ">": 39,
32907
+ $accept: 0,
32908
+ $end: 1,
32909
+ },
32910
+ terminals_: {
32911
+ 2: "error",
32912
+ 5: "EndOfExpression",
32913
+ 6: "-",
32914
+ 7: "+",
32915
+ 8: "*",
32916
+ 9: "/",
32917
+ 10: "^",
32918
+ 11: "mod",
32919
+ 12: "and",
32920
+ 13: "or",
32921
+ 14: "not",
32922
+ 15: "if",
32923
+ 16: "then",
32924
+ 17: "else",
32925
+ 18: "in",
32926
+ 19: "notIn",
32927
+ 20: "(",
32928
+ 21: ")",
32929
+ 23: ",",
32930
+ 24: "Number",
32931
+ 25: "Symbol",
32932
+ 26: "String",
32933
+ 27: "of",
32934
+ 29: "%",
32935
+ 30: "?",
32936
+ 31: ":",
32937
+ 33: "==",
32938
+ 34: "!=",
32939
+ 35: "~=",
32940
+ 36: "<",
32941
+ 37: "<=",
32942
+ 38: ">=",
32943
+ 39: ">",
32944
+ },
32945
+ productions_: [
32946
+ 0,
32947
+ [3, 2],
32948
+ [4, 2],
32949
+ [4, 3],
32950
+ [4, 3],
32951
+ [4, 3],
32952
+ [4, 3],
32953
+ [4, 3],
32954
+ [4, 3],
32955
+ [4, 3],
32956
+ [4, 3],
32957
+ [4, 2],
32958
+ [4, 6],
32959
+ [4, 3],
32960
+ [4, 3],
32961
+ [4, 3],
32962
+ [4, 5],
32963
+ [4, 1],
32964
+ [4, 1],
32965
+ [4, 1],
32966
+ [4, 3],
32967
+ [4, 3],
32968
+ [4, 4],
32969
+ [4, 1],
32970
+ [4, 3],
32971
+ [4, 5],
32972
+ [32, 1],
32973
+ [32, 1],
32974
+ [32, 1],
32975
+ [32, 1],
32976
+ [32, 1],
32977
+ [32, 1],
32978
+ [32, 1],
32979
+ [28, 3],
32980
+ [28, 3],
32981
+ [22, 1],
32982
+ [22, 3],
32983
+ ],
32984
+ performAction: function anonymous(
32985
+ yytext,
32986
+ yyleng,
32987
+ yylineno,
32988
+ yy,
32989
+ yystate,
32990
+ $$,
32991
+ _$,
32992
+ ) {
32993
+ var $0 = $$.length - 1;
32994
+ switch (yystate) {
32995
+ case 1:
32996
+ return $$[$0 - 1];
32997
+ case 2:
32998
+ this.$ = ["(", "ops['-'](", $$[$0], ")", ")"];
32999
+ break;
33000
+ case 3:
33001
+ this.$ = [
33002
+ "(",
33003
+ "ops['",
33004
+ $$[$0 - 1],
33005
+ "'](",
33006
+ $$[$0 - 2],
33007
+ ", ",
33008
+ $$[$0],
33009
+ ")",
33010
+ ")",
33011
+ ];
33012
+ break;
33013
+ case 4:
33014
+ this.$ = [
33015
+ "(",
33016
+ "ops['",
33017
+ $$[$0 - 1],
33018
+ "'](",
33019
+ $$[$0 - 2],
33020
+ ", ",
33021
+ $$[$0],
33022
+ ")",
33023
+ ")",
33024
+ ];
33025
+ break;
33026
+ case 5:
33027
+ this.$ = [
33028
+ "(",
33029
+ "ops['",
33030
+ $$[$0 - 1],
33031
+ "'](",
33032
+ $$[$0 - 2],
33033
+ ", ",
33034
+ $$[$0],
33035
+ ")",
33036
+ ")",
33037
+ ];
33038
+ break;
33039
+ case 6:
33040
+ this.$ = [
33041
+ "(",
33042
+ "ops['",
33043
+ $$[$0 - 1],
33044
+ "'](",
33045
+ $$[$0 - 2],
33046
+ ", ",
33047
+ $$[$0],
33048
+ ")",
33049
+ ")",
33050
+ ];
33051
+ break;
33052
+ case 7:
33053
+ this.$ = [
33054
+ "(",
33055
+ "ops['",
33056
+ $$[$0 - 1],
33057
+ "'](",
33058
+ $$[$0 - 2],
33059
+ ", ",
33060
+ $$[$0],
33061
+ ")",
33062
+ ")",
33063
+ ];
33064
+ break;
33065
+ case 8:
33066
+ this.$ = ["(", "ops.mod(", $$[$0 - 2], ", ", $$[$0], ")", ")"];
33067
+ break;
33068
+ case 9:
33069
+ this.$ = [
33070
+ "(",
33071
+ "",
33072
+ "std.coerceBoolean",
33073
+ "(",
33074
+ $$[$0 - 2],
33075
+ ") && ",
33076
+ "std.coerceBoolean",
33077
+ "(",
33078
+ $$[$0],
33079
+ ")",
33080
+ ")",
33081
+ ];
33082
+ break;
33083
+ case 10:
33084
+ this.$ = [
33085
+ "(",
33086
+ "",
33087
+ "std.coerceBoolean",
33088
+ "(",
33089
+ $$[$0 - 2],
33090
+ ") || ",
33091
+ "std.coerceBoolean",
33092
+ "(",
33093
+ $$[$0],
33094
+ ")",
33095
+ ")",
33096
+ ];
33097
+ break;
33098
+ case 11:
33099
+ this.$ = ["(", "! ", "std.coerceBoolean", "(", $$[$0], ")", ")"];
33100
+ break;
33101
+ case 12:
33102
+ this.$ = [
33103
+ "(",
33104
+ "",
33105
+ "std.coerceBoolean",
33106
+ "(",
33107
+ $$[$0 - 4],
33108
+ ") ? ",
33109
+ $$[$0 - 2],
33110
+ " : ",
33111
+ $$[$0],
33112
+ "",
33113
+ ")",
33114
+ ];
33115
+ break;
33116
+ case 13:
33117
+ this.$ = ["(", "std.isSubset(", $$[$0 - 2], ", ", $$[$0], ")", ")"];
33118
+ break;
33119
+ case 14:
33120
+ this.$ = [
33121
+ "(",
33122
+ "!std.isSubset(",
33123
+ $$[$0 - 2],
33124
+ ", ",
33125
+ $$[$0],
33126
+ ")",
33127
+ ")",
33128
+ ];
33129
+ break;
33130
+ case 15:
33131
+ this.$ = ["(", "", $$[$0 - 1], "", ")"];
33132
+ break;
33133
+ case 16:
33134
+ this.$ = ["(", "[ ", $$[$0 - 3], ", ", $$[$0 - 1], " ]", ")"];
33135
+ break;
33136
+ case 17:
33137
+ this.$ = ["", $$[$0], ""];
33138
+ break;
33139
+ case 18:
33140
+ this.$ = ["prop(", $$[$0], ", data)"];
33141
+ break;
33142
+ case 19:
33143
+ this.$ = ["", $$[$0], ""];
33144
+ break;
33145
+ case 20:
33146
+ this.$ = ["prop(", $$[$0 - 2], ", ", $$[$0], ")"];
33147
+ break;
33148
+ case 21:
33149
+ this.$ = ["call(", $$[$0 - 2], ")"];
33150
+ break;
33151
+ case 22:
33152
+ this.$ = ["call(", $$[$0 - 3], ", ", $$[$0 - 1], ")"];
33153
+ break;
33154
+ case 23:
33155
+ this.$ = yy.reduceRelation($$[$0]);
33156
+ break;
33157
+ case 24:
33158
+ this.$ = [
33159
+ "std.warnDeprecated('modulo', ops['mod'](",
33160
+ $$[$0 - 2],
33161
+ ", ",
33162
+ $$[$0],
33163
+ "))",
33164
+ ];
33165
+ break;
33166
+ case 25:
33167
+ this.$ = [
33168
+ "std.warnDeprecated('ternary', ",
33169
+ "std.coerceBoolean",
33170
+ "(",
33171
+ $$[$0 - 4],
33172
+ ") ? ",
33173
+ $$[$0 - 2],
33174
+ " : ",
33175
+ $$[$0],
33176
+ ")",
33177
+ ];
33178
+ break;
33179
+ case 26:
33180
+ this.$ = ["=="];
33181
+ break;
33182
+ case 27:
33183
+ this.$ = ["!="];
33184
+ break;
33185
+ case 28:
33186
+ this.$ = ["~="];
33187
+ break;
33188
+ case 29:
33189
+ this.$ = ["<"];
33190
+ break;
33191
+ case 30:
33192
+ this.$ = ["<="];
33193
+ break;
33194
+ case 31:
33195
+ this.$ = [">="];
33196
+ break;
33197
+ case 32:
33198
+ this.$ = [">"];
33199
+ break;
33200
+ case 33:
33201
+ this.$ = [$$[$0 - 2], $$[$0 - 1]].concat(
33202
+ _toConsumableArray($$[$0]),
33203
+ );
33204
+ break;
33205
+ case 34:
33206
+ this.$ = [$$[$0 - 2], $$[$0 - 1], $$[$0]];
33207
+ break;
33208
+ case 35:
33209
+ this.$ = ["", $$[$0], ""];
33210
+ break;
33211
+ case 36:
33212
+ this.$ = ["", $$[$0 - 2], ", ", $$[$0], ""];
33213
+ break;
33214
+ }
33215
+ },
33216
+ table: [
33217
+ {
33218
+ 3: 1,
33219
+ 4: 2,
33220
+ 6: [1, 3],
33221
+ 14: [1, 4],
33222
+ 15: [1, 5],
33223
+ 20: [1, 6],
33224
+ 24: [1, 7],
33225
+ 25: [1, 8],
33226
+ 26: [1, 9],
33227
+ 28: 10,
33228
+ },
33229
+ {
33230
+ 1: [3],
33231
+ },
33232
+ {
33233
+ 5: [1, 11],
33234
+ 6: [1, 13],
33235
+ 7: [1, 12],
33236
+ 8: [1, 14],
33237
+ 9: [1, 15],
33238
+ 10: [1, 16],
33239
+ 11: [1, 17],
33240
+ 12: [1, 18],
33241
+ 13: [1, 19],
33242
+ 18: [1, 20],
33243
+ 19: [1, 21],
33244
+ 29: [1, 22],
33245
+ 30: [1, 23],
33246
+ 32: 24,
33247
+ 33: [1, 25],
33248
+ 34: [1, 26],
33249
+ 35: [1, 27],
33250
+ 36: [1, 28],
33251
+ 37: [1, 29],
33252
+ 38: [1, 30],
33253
+ 39: [1, 31],
33254
+ },
33255
+ {
33256
+ 4: 32,
33257
+ 6: [1, 3],
33258
+ 14: [1, 4],
33259
+ 15: [1, 5],
33260
+ 20: [1, 6],
33261
+ 24: [1, 7],
33262
+ 25: [1, 8],
33263
+ 26: [1, 9],
33264
+ 28: 10,
33265
+ },
33266
+ {
33267
+ 4: 33,
33268
+ 6: [1, 3],
33269
+ 14: [1, 4],
33270
+ 15: [1, 5],
33271
+ 20: [1, 6],
33272
+ 24: [1, 7],
33273
+ 25: [1, 8],
33274
+ 26: [1, 9],
33275
+ 28: 10,
33276
+ },
33277
+ {
33278
+ 4: 34,
33279
+ 6: [1, 3],
33280
+ 14: [1, 4],
33281
+ 15: [1, 5],
33282
+ 20: [1, 6],
33283
+ 24: [1, 7],
33284
+ 25: [1, 8],
33285
+ 26: [1, 9],
33286
+ 28: 10,
33287
+ },
33288
+ {
33289
+ 4: 35,
33290
+ 6: [1, 3],
33291
+ 14: [1, 4],
33292
+ 15: [1, 5],
33293
+ 20: [1, 6],
33294
+ 22: 36,
33295
+ 24: [1, 7],
33296
+ 25: [1, 8],
33297
+ 26: [1, 9],
33298
+ 28: 10,
33299
+ },
33300
+ {
33301
+ 5: [2, 17],
33302
+ 6: [2, 17],
33303
+ 7: [2, 17],
33304
+ 8: [2, 17],
33305
+ 9: [2, 17],
33306
+ 10: [2, 17],
33307
+ 11: [2, 17],
33308
+ 12: [2, 17],
33309
+ 13: [2, 17],
33310
+ 16: [2, 17],
33311
+ 17: [2, 17],
33312
+ 18: [2, 17],
33313
+ 19: [2, 17],
33314
+ 21: [2, 17],
33315
+ 23: [2, 17],
33316
+ 29: [2, 17],
33317
+ 30: [2, 17],
33318
+ 31: [2, 17],
33319
+ 33: [2, 17],
33320
+ 34: [2, 17],
33321
+ 35: [2, 17],
33322
+ 36: [2, 17],
33323
+ 37: [2, 17],
33324
+ 38: [2, 17],
33325
+ 39: [2, 17],
33326
+ },
33327
+ {
33328
+ 5: [2, 18],
33329
+ 6: [2, 18],
33330
+ 7: [2, 18],
33331
+ 8: [2, 18],
33332
+ 9: [2, 18],
33333
+ 10: [2, 18],
33334
+ 11: [2, 18],
33335
+ 12: [2, 18],
33336
+ 13: [2, 18],
33337
+ 16: [2, 18],
33338
+ 17: [2, 18],
33339
+ 18: [2, 18],
33340
+ 19: [2, 18],
33341
+ 20: [1, 38],
33342
+ 21: [2, 18],
33343
+ 23: [2, 18],
33344
+ 27: [1, 37],
33345
+ 29: [2, 18],
33346
+ 30: [2, 18],
33347
+ 31: [2, 18],
33348
+ 33: [2, 18],
33349
+ 34: [2, 18],
33350
+ 35: [2, 18],
33351
+ 36: [2, 18],
33352
+ 37: [2, 18],
33353
+ 38: [2, 18],
33354
+ 39: [2, 18],
33355
+ },
33356
+ {
33357
+ 5: [2, 19],
33358
+ 6: [2, 19],
33359
+ 7: [2, 19],
33360
+ 8: [2, 19],
33361
+ 9: [2, 19],
33362
+ 10: [2, 19],
33363
+ 11: [2, 19],
33364
+ 12: [2, 19],
33365
+ 13: [2, 19],
33366
+ 16: [2, 19],
33367
+ 17: [2, 19],
33368
+ 18: [2, 19],
33369
+ 19: [2, 19],
33370
+ 21: [2, 19],
33371
+ 23: [2, 19],
33372
+ 29: [2, 19],
33373
+ 30: [2, 19],
33374
+ 31: [2, 19],
33375
+ 33: [2, 19],
33376
+ 34: [2, 19],
33377
+ 35: [2, 19],
33378
+ 36: [2, 19],
33379
+ 37: [2, 19],
33380
+ 38: [2, 19],
33381
+ 39: [2, 19],
33382
+ },
33383
+ {
33384
+ 5: [2, 23],
33385
+ 6: [2, 23],
33386
+ 7: [2, 23],
33387
+ 8: [2, 23],
33388
+ 9: [2, 23],
33389
+ 10: [2, 23],
33390
+ 11: [2, 23],
33391
+ 12: [2, 23],
33392
+ 13: [2, 23],
33393
+ 16: [2, 23],
33394
+ 17: [2, 23],
33395
+ 18: [2, 23],
33396
+ 19: [2, 23],
33397
+ 21: [2, 23],
33398
+ 23: [2, 23],
33399
+ 29: [2, 23],
33400
+ 30: [2, 23],
33401
+ 31: [2, 23],
33402
+ 33: [2, 23],
33403
+ 34: [2, 23],
33404
+ 35: [2, 23],
33405
+ 36: [2, 23],
33406
+ 37: [2, 23],
33407
+ 38: [2, 23],
33408
+ 39: [2, 23],
33409
+ },
33410
+ {
33411
+ 1: [2, 1],
33412
+ },
33413
+ {
33414
+ 4: 39,
33415
+ 6: [1, 3],
33416
+ 14: [1, 4],
33417
+ 15: [1, 5],
33418
+ 20: [1, 6],
33419
+ 24: [1, 7],
33420
+ 25: [1, 8],
33421
+ 26: [1, 9],
33422
+ 28: 10,
33423
+ },
33424
+ {
33425
+ 4: 40,
33426
+ 6: [1, 3],
33427
+ 14: [1, 4],
33428
+ 15: [1, 5],
33429
+ 20: [1, 6],
33430
+ 24: [1, 7],
33431
+ 25: [1, 8],
33432
+ 26: [1, 9],
33433
+ 28: 10,
33434
+ },
33435
+ {
33436
+ 4: 41,
33437
+ 6: [1, 3],
33438
+ 14: [1, 4],
33439
+ 15: [1, 5],
33440
+ 20: [1, 6],
33441
+ 24: [1, 7],
33442
+ 25: [1, 8],
33443
+ 26: [1, 9],
33444
+ 28: 10,
33445
+ },
33446
+ {
33447
+ 4: 42,
33448
+ 6: [1, 3],
33449
+ 14: [1, 4],
33450
+ 15: [1, 5],
33451
+ 20: [1, 6],
33452
+ 24: [1, 7],
33453
+ 25: [1, 8],
33454
+ 26: [1, 9],
33455
+ 28: 10,
33456
+ },
33457
+ {
33458
+ 4: 43,
33459
+ 6: [1, 3],
33460
+ 14: [1, 4],
33461
+ 15: [1, 5],
33462
+ 20: [1, 6],
33463
+ 24: [1, 7],
33464
+ 25: [1, 8],
33465
+ 26: [1, 9],
33466
+ 28: 10,
33467
+ },
33468
+ {
33469
+ 4: 44,
33470
+ 6: [1, 3],
33471
+ 14: [1, 4],
33472
+ 15: [1, 5],
33473
+ 20: [1, 6],
33474
+ 24: [1, 7],
33475
+ 25: [1, 8],
33476
+ 26: [1, 9],
33477
+ 28: 10,
33478
+ },
33479
+ {
33480
+ 4: 45,
33481
+ 6: [1, 3],
33482
+ 14: [1, 4],
33483
+ 15: [1, 5],
33484
+ 20: [1, 6],
33485
+ 24: [1, 7],
33486
+ 25: [1, 8],
33487
+ 26: [1, 9],
33488
+ 28: 10,
33489
+ },
33490
+ {
33491
+ 4: 46,
33492
+ 6: [1, 3],
33493
+ 14: [1, 4],
33494
+ 15: [1, 5],
33495
+ 20: [1, 6],
33496
+ 24: [1, 7],
33497
+ 25: [1, 8],
33498
+ 26: [1, 9],
33499
+ 28: 10,
33500
+ },
33501
+ {
33502
+ 4: 47,
33503
+ 6: [1, 3],
33504
+ 14: [1, 4],
33505
+ 15: [1, 5],
33506
+ 20: [1, 6],
33507
+ 24: [1, 7],
33508
+ 25: [1, 8],
33509
+ 26: [1, 9],
33510
+ 28: 10,
33511
+ },
33512
+ {
33513
+ 4: 48,
33514
+ 6: [1, 3],
33515
+ 14: [1, 4],
33516
+ 15: [1, 5],
33517
+ 20: [1, 6],
33518
+ 24: [1, 7],
33519
+ 25: [1, 8],
33520
+ 26: [1, 9],
33521
+ 28: 10,
33522
+ },
33523
+ {
33524
+ 4: 49,
33525
+ 6: [1, 3],
33526
+ 14: [1, 4],
33527
+ 15: [1, 5],
33528
+ 20: [1, 6],
33529
+ 24: [1, 7],
33530
+ 25: [1, 8],
33531
+ 26: [1, 9],
33532
+ 28: 10,
33533
+ },
33534
+ {
33535
+ 4: 50,
33536
+ 6: [1, 3],
33537
+ 14: [1, 4],
33538
+ 15: [1, 5],
33539
+ 20: [1, 6],
33540
+ 24: [1, 7],
33541
+ 25: [1, 8],
33542
+ 26: [1, 9],
33543
+ 28: 10,
33544
+ },
33545
+ {
33546
+ 4: 52,
33547
+ 6: [1, 3],
33548
+ 14: [1, 4],
33549
+ 15: [1, 5],
33550
+ 20: [1, 6],
33551
+ 24: [1, 7],
33552
+ 25: [1, 8],
33553
+ 26: [1, 9],
33554
+ 28: 51,
33555
+ },
33556
+ {
33557
+ 6: [2, 26],
33558
+ 14: [2, 26],
33559
+ 15: [2, 26],
33560
+ 20: [2, 26],
33561
+ 24: [2, 26],
33562
+ 25: [2, 26],
33563
+ 26: [2, 26],
33564
+ },
33565
+ {
33566
+ 6: [2, 27],
33567
+ 14: [2, 27],
33568
+ 15: [2, 27],
33569
+ 20: [2, 27],
33570
+ 24: [2, 27],
33571
+ 25: [2, 27],
33572
+ 26: [2, 27],
33573
+ },
33574
+ {
33575
+ 6: [2, 28],
33576
+ 14: [2, 28],
33577
+ 15: [2, 28],
33578
+ 20: [2, 28],
33579
+ 24: [2, 28],
33580
+ 25: [2, 28],
33581
+ 26: [2, 28],
33582
+ },
33583
+ {
33584
+ 6: [2, 29],
33585
+ 14: [2, 29],
33586
+ 15: [2, 29],
33587
+ 20: [2, 29],
33588
+ 24: [2, 29],
33589
+ 25: [2, 29],
33590
+ 26: [2, 29],
33591
+ },
33592
+ {
33593
+ 6: [2, 30],
33594
+ 14: [2, 30],
33595
+ 15: [2, 30],
33596
+ 20: [2, 30],
33597
+ 24: [2, 30],
33598
+ 25: [2, 30],
33599
+ 26: [2, 30],
33600
+ },
33601
+ {
33602
+ 6: [2, 31],
33603
+ 14: [2, 31],
33604
+ 15: [2, 31],
33605
+ 20: [2, 31],
33606
+ 24: [2, 31],
33607
+ 25: [2, 31],
33608
+ 26: [2, 31],
33609
+ },
33610
+ {
33611
+ 6: [2, 32],
33612
+ 14: [2, 32],
33613
+ 15: [2, 32],
33614
+ 20: [2, 32],
33615
+ 24: [2, 32],
33616
+ 25: [2, 32],
33617
+ 26: [2, 32],
33618
+ },
33619
+ {
33620
+ 5: [2, 2],
33621
+ 6: [2, 2],
33622
+ 7: [2, 2],
33623
+ 8: [2, 2],
33624
+ 9: [2, 2],
33625
+ 10: [1, 16],
33626
+ 11: [2, 2],
33627
+ 12: [2, 2],
33628
+ 13: [2, 2],
33629
+ 16: [2, 2],
33630
+ 17: [2, 2],
33631
+ 18: [2, 2],
33632
+ 19: [2, 2],
33633
+ 21: [2, 2],
33634
+ 23: [2, 2],
33635
+ 29: [2, 2],
33636
+ 30: [2, 2],
33637
+ 31: [2, 2],
33638
+ 32: 24,
33639
+ 33: [2, 2],
33640
+ 34: [2, 2],
33641
+ 35: [2, 2],
33642
+ 36: [2, 2],
33643
+ 37: [2, 2],
33644
+ 38: [2, 2],
33645
+ 39: [2, 2],
33646
+ },
33647
+ {
33648
+ 5: [2, 11],
33649
+ 6: [2, 11],
33650
+ 7: [2, 11],
33651
+ 8: [2, 11],
33652
+ 9: [2, 11],
33653
+ 10: [1, 16],
33654
+ 11: [2, 11],
33655
+ 12: [2, 11],
33656
+ 13: [2, 11],
33657
+ 16: [2, 11],
33658
+ 17: [2, 11],
33659
+ 18: [2, 11],
33660
+ 19: [2, 11],
33661
+ 21: [2, 11],
33662
+ 23: [2, 11],
33663
+ 29: [2, 11],
33664
+ 30: [2, 11],
33665
+ 31: [2, 11],
33666
+ 32: 24,
33667
+ 33: [2, 11],
33668
+ 34: [2, 11],
33669
+ 35: [2, 11],
33670
+ 36: [2, 11],
33671
+ 37: [2, 11],
33672
+ 38: [2, 11],
33673
+ 39: [2, 11],
33674
+ },
33675
+ {
33676
+ 6: [1, 13],
33677
+ 7: [1, 12],
33678
+ 8: [1, 14],
33679
+ 9: [1, 15],
33680
+ 10: [1, 16],
33681
+ 11: [1, 17],
33682
+ 12: [1, 18],
33683
+ 13: [1, 19],
33684
+ 16: [1, 53],
33685
+ 18: [1, 20],
33686
+ 19: [1, 21],
33687
+ 29: [1, 22],
33688
+ 30: [1, 23],
33689
+ 32: 24,
33690
+ 33: [1, 25],
33691
+ 34: [1, 26],
33692
+ 35: [1, 27],
33693
+ 36: [1, 28],
33694
+ 37: [1, 29],
33695
+ 38: [1, 30],
33696
+ 39: [1, 31],
33697
+ },
33698
+ {
33699
+ 6: [1, 13],
33700
+ 7: [1, 12],
33701
+ 8: [1, 14],
33702
+ 9: [1, 15],
33703
+ 10: [1, 16],
33704
+ 11: [1, 17],
33705
+ 12: [1, 18],
33706
+ 13: [1, 19],
33707
+ 18: [1, 20],
33708
+ 19: [1, 21],
33709
+ 21: [1, 54],
33710
+ 23: [2, 35],
33711
+ 29: [1, 22],
33712
+ 30: [1, 23],
33713
+ 32: 24,
33714
+ 33: [1, 25],
33715
+ 34: [1, 26],
33716
+ 35: [1, 27],
33717
+ 36: [1, 28],
33718
+ 37: [1, 29],
33719
+ 38: [1, 30],
33720
+ 39: [1, 31],
33721
+ },
33722
+ {
33723
+ 23: [1, 55],
33724
+ },
33725
+ {
33726
+ 4: 56,
33727
+ 6: [1, 3],
33728
+ 14: [1, 4],
33729
+ 15: [1, 5],
33730
+ 20: [1, 6],
33731
+ 24: [1, 7],
33732
+ 25: [1, 8],
33733
+ 26: [1, 9],
33734
+ 28: 10,
33735
+ },
33736
+ {
33737
+ 4: 59,
33738
+ 6: [1, 3],
33739
+ 14: [1, 4],
33740
+ 15: [1, 5],
33741
+ 20: [1, 6],
33742
+ 21: [1, 57],
33743
+ 22: 58,
33744
+ 24: [1, 7],
33745
+ 25: [1, 8],
33746
+ 26: [1, 9],
33747
+ 28: 10,
33748
+ },
33749
+ {
33750
+ 5: [2, 3],
33751
+ 6: [2, 3],
33752
+ 7: [2, 3],
33753
+ 8: [1, 14],
33754
+ 9: [1, 15],
33755
+ 10: [1, 16],
33756
+ 11: [1, 17],
33757
+ 12: [2, 3],
33758
+ 13: [2, 3],
33759
+ 16: [2, 3],
33760
+ 17: [2, 3],
33761
+ 18: [2, 3],
33762
+ 19: [2, 3],
33763
+ 21: [2, 3],
33764
+ 23: [2, 3],
33765
+ 29: [1, 22],
33766
+ 30: [2, 3],
33767
+ 31: [2, 3],
33768
+ 32: 24,
33769
+ 33: [2, 3],
33770
+ 34: [2, 3],
33771
+ 35: [2, 3],
33772
+ 36: [2, 3],
33773
+ 37: [2, 3],
33774
+ 38: [2, 3],
33775
+ 39: [2, 3],
33776
+ },
33777
+ {
33778
+ 5: [2, 4],
33779
+ 6: [2, 4],
33780
+ 7: [2, 4],
33781
+ 8: [1, 14],
33782
+ 9: [1, 15],
33783
+ 10: [1, 16],
33784
+ 11: [1, 17],
33785
+ 12: [2, 4],
33786
+ 13: [2, 4],
33787
+ 16: [2, 4],
33788
+ 17: [2, 4],
33789
+ 18: [2, 4],
33790
+ 19: [2, 4],
33791
+ 21: [2, 4],
33792
+ 23: [2, 4],
33793
+ 29: [1, 22],
33794
+ 30: [2, 4],
33795
+ 31: [2, 4],
33796
+ 32: 24,
33797
+ 33: [2, 4],
33798
+ 34: [2, 4],
33799
+ 35: [2, 4],
33800
+ 36: [2, 4],
33801
+ 37: [2, 4],
33802
+ 38: [2, 4],
33803
+ 39: [2, 4],
33804
+ },
33805
+ {
33806
+ 5: [2, 5],
33807
+ 6: [2, 5],
33808
+ 7: [2, 5],
33809
+ 8: [2, 5],
33810
+ 9: [2, 5],
33811
+ 10: [1, 16],
33812
+ 11: [2, 5],
33813
+ 12: [2, 5],
33814
+ 13: [2, 5],
33815
+ 16: [2, 5],
33816
+ 17: [2, 5],
33817
+ 18: [2, 5],
33818
+ 19: [2, 5],
33819
+ 21: [2, 5],
33820
+ 23: [2, 5],
33821
+ 29: [2, 5],
33822
+ 30: [2, 5],
33823
+ 31: [2, 5],
33824
+ 32: 24,
33825
+ 33: [2, 5],
33826
+ 34: [2, 5],
33827
+ 35: [2, 5],
33828
+ 36: [2, 5],
33829
+ 37: [2, 5],
33830
+ 38: [2, 5],
33831
+ 39: [2, 5],
33832
+ },
33833
+ {
33834
+ 5: [2, 6],
33835
+ 6: [2, 6],
33836
+ 7: [2, 6],
33837
+ 8: [2, 6],
33838
+ 9: [2, 6],
33839
+ 10: [1, 16],
33840
+ 11: [2, 6],
33841
+ 12: [2, 6],
33842
+ 13: [2, 6],
33843
+ 16: [2, 6],
33844
+ 17: [2, 6],
33845
+ 18: [2, 6],
33846
+ 19: [2, 6],
33847
+ 21: [2, 6],
33848
+ 23: [2, 6],
33849
+ 29: [2, 6],
33850
+ 30: [2, 6],
33851
+ 31: [2, 6],
33852
+ 32: 24,
33853
+ 33: [2, 6],
33854
+ 34: [2, 6],
33855
+ 35: [2, 6],
33856
+ 36: [2, 6],
33857
+ 37: [2, 6],
33858
+ 38: [2, 6],
33859
+ 39: [2, 6],
33860
+ },
33861
+ {
33862
+ 5: [2, 7],
33863
+ 6: [2, 7],
33864
+ 7: [2, 7],
33865
+ 8: [2, 7],
33866
+ 9: [2, 7],
33867
+ 10: [1, 16],
33868
+ 11: [2, 7],
33869
+ 12: [2, 7],
33870
+ 13: [2, 7],
33871
+ 16: [2, 7],
33872
+ 17: [2, 7],
33873
+ 18: [2, 7],
33874
+ 19: [2, 7],
33875
+ 21: [2, 7],
33876
+ 23: [2, 7],
33877
+ 29: [2, 7],
33878
+ 30: [2, 7],
33879
+ 31: [2, 7],
33880
+ 32: 24,
33881
+ 33: [2, 7],
33882
+ 34: [2, 7],
33883
+ 35: [2, 7],
33884
+ 36: [2, 7],
33885
+ 37: [2, 7],
33886
+ 38: [2, 7],
33887
+ 39: [2, 7],
33888
+ },
33889
+ {
33890
+ 5: [2, 8],
33891
+ 6: [2, 8],
33892
+ 7: [2, 8],
33893
+ 8: [2, 8],
33894
+ 9: [2, 8],
33895
+ 10: [1, 16],
33896
+ 11: [2, 8],
33897
+ 12: [2, 8],
33898
+ 13: [2, 8],
33899
+ 16: [2, 8],
33900
+ 17: [2, 8],
33901
+ 18: [2, 8],
33902
+ 19: [2, 8],
33903
+ 21: [2, 8],
33904
+ 23: [2, 8],
33905
+ 29: [2, 8],
33906
+ 30: [2, 8],
33907
+ 31: [2, 8],
33908
+ 32: 24,
33909
+ 33: [2, 8],
33910
+ 34: [2, 8],
33911
+ 35: [2, 8],
33912
+ 36: [2, 8],
33913
+ 37: [2, 8],
33914
+ 38: [2, 8],
33915
+ 39: [2, 8],
33916
+ },
33917
+ {
33918
+ 5: [2, 9],
33919
+ 6: [1, 13],
33920
+ 7: [1, 12],
33921
+ 8: [1, 14],
33922
+ 9: [1, 15],
33923
+ 10: [1, 16],
33924
+ 11: [1, 17],
33925
+ 12: [2, 9],
33926
+ 13: [2, 9],
33927
+ 16: [2, 9],
33928
+ 17: [2, 9],
33929
+ 18: [1, 20],
33930
+ 19: [1, 21],
33931
+ 21: [2, 9],
33932
+ 23: [2, 9],
33933
+ 29: [1, 22],
33934
+ 30: [2, 9],
33935
+ 31: [2, 9],
33936
+ 32: 24,
33937
+ 33: [1, 25],
33938
+ 34: [1, 26],
33939
+ 35: [1, 27],
33940
+ 36: [1, 28],
33941
+ 37: [1, 29],
33942
+ 38: [1, 30],
33943
+ 39: [1, 31],
33944
+ },
33945
+ {
33946
+ 5: [2, 10],
33947
+ 6: [1, 13],
33948
+ 7: [1, 12],
33949
+ 8: [1, 14],
33950
+ 9: [1, 15],
33951
+ 10: [1, 16],
33952
+ 11: [1, 17],
33953
+ 12: [1, 18],
33954
+ 13: [2, 10],
33955
+ 16: [2, 10],
33956
+ 17: [2, 10],
33957
+ 18: [1, 20],
33958
+ 19: [1, 21],
33959
+ 21: [2, 10],
33960
+ 23: [2, 10],
33961
+ 29: [1, 22],
33962
+ 30: [2, 10],
33963
+ 31: [2, 10],
33964
+ 32: 24,
33965
+ 33: [1, 25],
33966
+ 34: [1, 26],
33967
+ 35: [1, 27],
33968
+ 36: [1, 28],
33969
+ 37: [1, 29],
33970
+ 38: [1, 30],
33971
+ 39: [1, 31],
33972
+ },
33973
+ {
33974
+ 5: [2, 13],
33975
+ 6: [1, 13],
33976
+ 7: [1, 12],
33977
+ 8: [1, 14],
33978
+ 9: [1, 15],
33979
+ 10: [1, 16],
33980
+ 11: [1, 17],
33981
+ 12: [2, 13],
33982
+ 13: [2, 13],
33983
+ 16: [2, 13],
33984
+ 17: [2, 13],
33985
+ 18: [2, 13],
33986
+ 19: [2, 13],
33987
+ 21: [2, 13],
33988
+ 23: [2, 13],
33989
+ 29: [1, 22],
33990
+ 30: [2, 13],
33991
+ 31: [2, 13],
33992
+ 32: 24,
33993
+ 33: [1, 25],
33994
+ 34: [1, 26],
33995
+ 35: [1, 27],
33996
+ 36: [1, 28],
33997
+ 37: [1, 29],
33998
+ 38: [1, 30],
33999
+ 39: [1, 31],
34000
+ },
34001
+ {
34002
+ 5: [2, 14],
34003
+ 6: [1, 13],
34004
+ 7: [1, 12],
34005
+ 8: [1, 14],
34006
+ 9: [1, 15],
34007
+ 10: [1, 16],
34008
+ 11: [1, 17],
34009
+ 12: [2, 14],
34010
+ 13: [2, 14],
34011
+ 16: [2, 14],
34012
+ 17: [2, 14],
34013
+ 18: [2, 14],
34014
+ 19: [2, 14],
34015
+ 21: [2, 14],
34016
+ 23: [2, 14],
34017
+ 29: [1, 22],
34018
+ 30: [2, 14],
34019
+ 31: [2, 14],
34020
+ 32: 24,
34021
+ 33: [1, 25],
34022
+ 34: [1, 26],
34023
+ 35: [1, 27],
34024
+ 36: [1, 28],
34025
+ 37: [1, 29],
34026
+ 38: [1, 30],
34027
+ 39: [1, 31],
34028
+ },
34029
+ {
34030
+ 5: [2, 24],
34031
+ 6: [2, 24],
34032
+ 7: [2, 24],
34033
+ 8: [2, 24],
34034
+ 9: [2, 24],
34035
+ 10: [1, 16],
34036
+ 11: [2, 24],
34037
+ 12: [2, 24],
34038
+ 13: [2, 24],
34039
+ 16: [2, 24],
34040
+ 17: [2, 24],
34041
+ 18: [2, 24],
34042
+ 19: [2, 24],
34043
+ 21: [2, 24],
34044
+ 23: [2, 24],
34045
+ 29: [2, 24],
34046
+ 30: [2, 24],
34047
+ 31: [2, 24],
34048
+ 32: 24,
34049
+ 33: [2, 24],
34050
+ 34: [2, 24],
34051
+ 35: [2, 24],
34052
+ 36: [2, 24],
34053
+ 37: [2, 24],
34054
+ 38: [2, 24],
34055
+ 39: [2, 24],
34056
+ },
34057
+ {
34058
+ 6: [1, 13],
34059
+ 7: [1, 12],
34060
+ 8: [1, 14],
34061
+ 9: [1, 15],
34062
+ 10: [1, 16],
34063
+ 11: [1, 17],
34064
+ 12: [1, 18],
34065
+ 13: [1, 19],
34066
+ 18: [1, 20],
34067
+ 19: [1, 21],
34068
+ 29: [1, 22],
34069
+ 30: [1, 23],
34070
+ 31: [1, 60],
34071
+ 32: 24,
34072
+ 33: [1, 25],
34073
+ 34: [1, 26],
34074
+ 35: [1, 27],
34075
+ 36: [1, 28],
34076
+ 37: [1, 29],
34077
+ 38: [1, 30],
34078
+ 39: [1, 31],
34079
+ },
34080
+ {
34081
+ 5: [2, 33],
34082
+ 6: [2, 33],
34083
+ 7: [2, 33],
34084
+ 8: [2, 33],
34085
+ 9: [2, 33],
34086
+ 10: [2, 33],
34087
+ 11: [2, 33],
34088
+ 12: [2, 33],
34089
+ 13: [2, 33],
34090
+ 16: [2, 33],
34091
+ 17: [2, 33],
34092
+ 18: [2, 33],
34093
+ 19: [2, 33],
34094
+ 21: [2, 33],
34095
+ 23: [2, 33],
34096
+ 29: [2, 33],
34097
+ 30: [2, 33],
34098
+ 31: [2, 33],
34099
+ 33: [2, 33],
34100
+ 34: [2, 33],
34101
+ 35: [2, 33],
34102
+ 36: [2, 33],
34103
+ 37: [2, 33],
34104
+ 38: [2, 33],
34105
+ 39: [2, 33],
34106
+ },
34107
+ {
34108
+ 5: [2, 34],
34109
+ 6: [1, 13],
34110
+ 7: [1, 12],
34111
+ 8: [1, 14],
34112
+ 9: [1, 15],
34113
+ 10: [1, 16],
34114
+ 11: [1, 17],
34115
+ 12: [2, 34],
34116
+ 13: [2, 34],
34117
+ 16: [2, 34],
34118
+ 17: [2, 34],
34119
+ 18: [2, 34],
34120
+ 19: [2, 34],
34121
+ 21: [2, 34],
34122
+ 23: [2, 34],
34123
+ 29: [1, 22],
34124
+ 30: [2, 34],
34125
+ 31: [2, 34],
34126
+ 32: 24,
34127
+ 33: [1, 25],
34128
+ 34: [1, 26],
34129
+ 35: [1, 27],
34130
+ 36: [1, 28],
34131
+ 37: [1, 29],
34132
+ 38: [1, 30],
34133
+ 39: [1, 31],
34134
+ },
34135
+ {
34136
+ 4: 61,
34137
+ 6: [1, 3],
34138
+ 14: [1, 4],
34139
+ 15: [1, 5],
34140
+ 20: [1, 6],
34141
+ 24: [1, 7],
34142
+ 25: [1, 8],
34143
+ 26: [1, 9],
34144
+ 28: 10,
34145
+ },
34146
+ {
34147
+ 5: [2, 15],
34148
+ 6: [2, 15],
34149
+ 7: [2, 15],
34150
+ 8: [2, 15],
34151
+ 9: [2, 15],
34152
+ 10: [2, 15],
34153
+ 11: [2, 15],
34154
+ 12: [2, 15],
34155
+ 13: [2, 15],
34156
+ 16: [2, 15],
34157
+ 17: [2, 15],
34158
+ 18: [2, 15],
34159
+ 19: [2, 15],
34160
+ 21: [2, 15],
34161
+ 23: [2, 15],
34162
+ 29: [2, 15],
34163
+ 30: [2, 15],
34164
+ 31: [2, 15],
34165
+ 33: [2, 15],
34166
+ 34: [2, 15],
34167
+ 35: [2, 15],
34168
+ 36: [2, 15],
34169
+ 37: [2, 15],
34170
+ 38: [2, 15],
34171
+ 39: [2, 15],
34172
+ },
34173
+ {
34174
+ 4: 62,
34175
+ 6: [1, 3],
34176
+ 14: [1, 4],
34177
+ 15: [1, 5],
34178
+ 20: [1, 6],
34179
+ 24: [1, 7],
34180
+ 25: [1, 8],
34181
+ 26: [1, 9],
34182
+ 28: 10,
34183
+ },
34184
+ {
34185
+ 5: [2, 20],
34186
+ 6: [2, 20],
34187
+ 7: [2, 20],
34188
+ 8: [2, 20],
34189
+ 9: [2, 20],
34190
+ 10: [2, 20],
34191
+ 11: [2, 20],
34192
+ 12: [2, 20],
34193
+ 13: [2, 20],
34194
+ 16: [2, 20],
34195
+ 17: [2, 20],
34196
+ 18: [2, 20],
34197
+ 19: [2, 20],
34198
+ 21: [2, 20],
34199
+ 23: [2, 20],
34200
+ 29: [2, 20],
34201
+ 30: [2, 20],
34202
+ 31: [2, 20],
34203
+ 32: 24,
34204
+ 33: [2, 20],
34205
+ 34: [2, 20],
34206
+ 35: [2, 20],
34207
+ 36: [2, 20],
34208
+ 37: [2, 20],
34209
+ 38: [2, 20],
34210
+ 39: [2, 20],
34211
+ },
34212
+ {
34213
+ 5: [2, 21],
34214
+ 6: [2, 21],
34215
+ 7: [2, 21],
34216
+ 8: [2, 21],
34217
+ 9: [2, 21],
34218
+ 10: [2, 21],
34219
+ 11: [2, 21],
34220
+ 12: [2, 21],
34221
+ 13: [2, 21],
34222
+ 16: [2, 21],
34223
+ 17: [2, 21],
34224
+ 18: [2, 21],
34225
+ 19: [2, 21],
34226
+ 21: [2, 21],
34227
+ 23: [2, 21],
34228
+ 29: [2, 21],
34229
+ 30: [2, 21],
34230
+ 31: [2, 21],
34231
+ 33: [2, 21],
34232
+ 34: [2, 21],
34233
+ 35: [2, 21],
34234
+ 36: [2, 21],
34235
+ 37: [2, 21],
34236
+ 38: [2, 21],
34237
+ 39: [2, 21],
34238
+ },
34239
+ {
34240
+ 21: [1, 63],
34241
+ 23: [1, 64],
34242
+ },
34243
+ {
34244
+ 6: [1, 13],
34245
+ 7: [1, 12],
34246
+ 8: [1, 14],
34247
+ 9: [1, 15],
34248
+ 10: [1, 16],
34249
+ 11: [1, 17],
34250
+ 12: [1, 18],
34251
+ 13: [1, 19],
34252
+ 18: [1, 20],
34253
+ 19: [1, 21],
34254
+ 21: [2, 35],
34255
+ 23: [2, 35],
34256
+ 29: [1, 22],
34257
+ 30: [1, 23],
34258
+ 32: 24,
34259
+ 33: [1, 25],
34260
+ 34: [1, 26],
34261
+ 35: [1, 27],
34262
+ 36: [1, 28],
34263
+ 37: [1, 29],
34264
+ 38: [1, 30],
34265
+ 39: [1, 31],
34266
+ },
34267
+ {
34268
+ 4: 65,
34269
+ 6: [1, 3],
34270
+ 14: [1, 4],
34271
+ 15: [1, 5],
34272
+ 20: [1, 6],
34273
+ 24: [1, 7],
34274
+ 25: [1, 8],
34275
+ 26: [1, 9],
34276
+ 28: 10,
34277
+ },
34278
+ {
34279
+ 6: [1, 13],
34280
+ 7: [1, 12],
34281
+ 8: [1, 14],
34282
+ 9: [1, 15],
34283
+ 10: [1, 16],
34284
+ 11: [1, 17],
34285
+ 12: [1, 18],
34286
+ 13: [1, 19],
34287
+ 17: [1, 66],
34288
+ 18: [1, 20],
34289
+ 19: [1, 21],
34290
+ 29: [1, 22],
34291
+ 30: [1, 23],
34292
+ 32: 24,
34293
+ 33: [1, 25],
34294
+ 34: [1, 26],
34295
+ 35: [1, 27],
34296
+ 36: [1, 28],
34297
+ 37: [1, 29],
34298
+ 38: [1, 30],
34299
+ 39: [1, 31],
34300
+ },
34301
+ {
34302
+ 6: [1, 13],
34303
+ 7: [1, 12],
34304
+ 8: [1, 14],
34305
+ 9: [1, 15],
34306
+ 10: [1, 16],
34307
+ 11: [1, 17],
34308
+ 12: [1, 18],
34309
+ 13: [1, 19],
34310
+ 18: [1, 20],
34311
+ 19: [1, 21],
34312
+ 21: [1, 67],
34313
+ 23: [2, 36],
34314
+ 29: [1, 22],
34315
+ 30: [1, 23],
34316
+ 32: 24,
34317
+ 33: [1, 25],
34318
+ 34: [1, 26],
34319
+ 35: [1, 27],
34320
+ 36: [1, 28],
34321
+ 37: [1, 29],
34322
+ 38: [1, 30],
34323
+ 39: [1, 31],
34324
+ },
34325
+ {
34326
+ 5: [2, 22],
34327
+ 6: [2, 22],
34328
+ 7: [2, 22],
34329
+ 8: [2, 22],
34330
+ 9: [2, 22],
34331
+ 10: [2, 22],
34332
+ 11: [2, 22],
34333
+ 12: [2, 22],
34334
+ 13: [2, 22],
34335
+ 16: [2, 22],
34336
+ 17: [2, 22],
34337
+ 18: [2, 22],
34338
+ 19: [2, 22],
34339
+ 21: [2, 22],
34340
+ 23: [2, 22],
34341
+ 29: [2, 22],
34342
+ 30: [2, 22],
34343
+ 31: [2, 22],
34344
+ 33: [2, 22],
34345
+ 34: [2, 22],
34346
+ 35: [2, 22],
34347
+ 36: [2, 22],
34348
+ 37: [2, 22],
34349
+ 38: [2, 22],
34350
+ 39: [2, 22],
34351
+ },
34352
+ {
34353
+ 4: 68,
34354
+ 6: [1, 3],
34355
+ 14: [1, 4],
34356
+ 15: [1, 5],
34357
+ 20: [1, 6],
34358
+ 24: [1, 7],
34359
+ 25: [1, 8],
34360
+ 26: [1, 9],
34361
+ 28: 10,
34362
+ },
34363
+ {
34364
+ 5: [2, 25],
34365
+ 6: [1, 13],
34366
+ 7: [1, 12],
34367
+ 8: [1, 14],
34368
+ 9: [1, 15],
34369
+ 10: [1, 16],
34370
+ 11: [1, 17],
34371
+ 12: [1, 18],
34372
+ 13: [1, 19],
34373
+ 16: [2, 25],
34374
+ 17: [2, 25],
34375
+ 18: [1, 20],
34376
+ 19: [1, 21],
34377
+ 21: [2, 25],
34378
+ 23: [2, 25],
34379
+ 29: [1, 22],
34380
+ 30: [1, 23],
34381
+ 31: [2, 25],
34382
+ 32: 24,
34383
+ 33: [1, 25],
34384
+ 34: [1, 26],
34385
+ 35: [1, 27],
34386
+ 36: [1, 28],
34387
+ 37: [1, 29],
34388
+ 38: [1, 30],
34389
+ 39: [1, 31],
34390
+ },
34391
+ {
34392
+ 4: 69,
34393
+ 6: [1, 3],
34394
+ 14: [1, 4],
34395
+ 15: [1, 5],
34396
+ 20: [1, 6],
34397
+ 24: [1, 7],
34398
+ 25: [1, 8],
34399
+ 26: [1, 9],
34400
+ 28: 10,
34401
+ },
34402
+ {
34403
+ 5: [2, 16],
34404
+ 6: [2, 16],
34405
+ 7: [2, 16],
34406
+ 8: [2, 16],
34407
+ 9: [2, 16],
34408
+ 10: [2, 16],
34409
+ 11: [2, 16],
34410
+ 12: [2, 16],
34411
+ 13: [2, 16],
34412
+ 16: [2, 16],
34413
+ 17: [2, 16],
34414
+ 18: [2, 16],
34415
+ 19: [2, 16],
34416
+ 21: [2, 16],
34417
+ 23: [2, 16],
34418
+ 29: [2, 16],
34419
+ 30: [2, 16],
34420
+ 31: [2, 16],
34421
+ 33: [2, 16],
34422
+ 34: [2, 16],
34423
+ 35: [2, 16],
34424
+ 36: [2, 16],
34425
+ 37: [2, 16],
34426
+ 38: [2, 16],
34427
+ 39: [2, 16],
34428
+ },
34429
+ {
34430
+ 6: [1, 13],
34431
+ 7: [1, 12],
34432
+ 8: [1, 14],
34433
+ 9: [1, 15],
34434
+ 10: [1, 16],
34435
+ 11: [1, 17],
34436
+ 12: [1, 18],
34437
+ 13: [1, 19],
34438
+ 18: [1, 20],
34439
+ 19: [1, 21],
34440
+ 21: [2, 36],
34441
+ 23: [2, 36],
34442
+ 29: [1, 22],
34443
+ 30: [1, 23],
34444
+ 32: 24,
34445
+ 33: [1, 25],
34446
+ 34: [1, 26],
34447
+ 35: [1, 27],
34448
+ 36: [1, 28],
34449
+ 37: [1, 29],
34450
+ 38: [1, 30],
34451
+ 39: [1, 31],
34452
+ },
34453
+ {
34454
+ 5: [2, 12],
34455
+ 6: [1, 13],
34456
+ 7: [1, 12],
34457
+ 8: [1, 14],
34458
+ 9: [1, 15],
34459
+ 10: [1, 16],
34460
+ 11: [1, 17],
34461
+ 12: [1, 18],
34462
+ 13: [1, 19],
34463
+ 16: [2, 12],
34464
+ 17: [2, 12],
34465
+ 18: [1, 20],
34466
+ 19: [1, 21],
34467
+ 21: [2, 12],
34468
+ 23: [2, 12],
34469
+ 29: [1, 22],
34470
+ 30: [1, 23],
34471
+ 31: [2, 12],
34472
+ 32: 24,
34473
+ 33: [1, 25],
34474
+ 34: [1, 26],
34475
+ 35: [1, 27],
34476
+ 36: [1, 28],
34477
+ 37: [1, 29],
34478
+ 38: [1, 30],
34479
+ 39: [1, 31],
34480
+ },
34481
+ ],
34482
+ defaultActions: {
34483
+ 11: [2, 1],
34484
+ },
34485
+ parseError: function parseError(str, hash) {
34486
+ throw new Error(str);
34487
+ },
34488
+ parse: function parse(input) {
34489
+ var self = this,
34490
+ stack = [0],
34491
+ vstack = [null],
34492
+ // semantic value stack
34493
+ lstack = [],
34494
+ // location stack
34495
+ table = this.table,
34496
+ yytext = "",
34497
+ yylineno = 0,
34498
+ yyleng = 0,
34499
+ recovering = 0,
34500
+ TERROR = 2,
34501
+ EOF = 1;
34502
+
34503
+ //this.reductionCount = this.shiftCount = 0;
34504
+
34505
+ this.lexer.setInput(input);
34506
+ this.lexer.yy = this.yy;
34507
+ this.yy.lexer = this.lexer;
34508
+ this.yy.parser = this;
34509
+ if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {};
34510
+ var yyloc = this.lexer.yylloc;
34511
+ lstack.push(yyloc);
34512
+ var ranges = this.lexer.options && this.lexer.options.ranges;
34513
+ if (typeof this.yy.parseError === "function")
34514
+ this.parseError = this.yy.parseError;
34515
+ function popStack(n) {
34516
+ stack.length = stack.length - 2 * n;
34517
+ vstack.length = vstack.length - n;
34518
+ lstack.length = lstack.length - n;
34519
+ }
34520
+ function lex() {
34521
+ var token;
34522
+ token = self.lexer.lex() || 1; // $end = 1
34523
+ // if token isn't its numeric value, convert
34524
+ if (typeof token !== "number") {
34525
+ token = self.symbols_[token] || token;
34526
+ }
34527
+ return token;
34528
+ }
34529
+ var symbol,
34530
+ preErrorSymbol,
34531
+ state,
34532
+ action,
34533
+ r,
34534
+ yyval = {},
34535
+ p,
34536
+ len,
34537
+ newState,
34538
+ expected;
34539
+ while (true) {
34540
+ // retreive state number from top of stack
34541
+ state = stack[stack.length - 1];
34542
+
34543
+ // use default actions if available
34544
+ if (this.defaultActions[state]) {
34545
+ action = this.defaultActions[state];
34546
+ } else {
34547
+ if (symbol === null || typeof symbol == "undefined") {
34548
+ symbol = lex();
34549
+ }
34550
+ // read action for current state and first input
34551
+ action = table[state] && table[state][symbol];
34552
+ }
34553
+
34554
+ // handle parse error
34555
+ if (typeof action === "undefined" || !action.length || !action[0]) {
34556
+ var errStr = "";
34557
+ if (!recovering) {
34558
+ // Report error
34559
+ expected = [];
34560
+ for (p in table[state])
34561
+ if (this.terminals_[p] && p > 2) {
34562
+ expected.push("'" + this.terminals_[p] + "'");
34563
+ }
34564
+ if (this.lexer.showPosition) {
34565
+ errStr =
34566
+ "Parse error on line " +
34567
+ (yylineno + 1) +
34568
+ ":\n" +
34569
+ this.lexer.showPosition() +
34570
+ "\nExpecting " +
34571
+ expected.join(", ") +
34572
+ ", got '" +
34573
+ (this.terminals_[symbol] || symbol) +
34574
+ "'";
34575
+ } else {
34576
+ errStr =
34577
+ "Parse error on line " +
34578
+ (yylineno + 1) +
34579
+ ": Unexpected " +
34580
+ (symbol == 1 /*EOF*/
34581
+ ? "end of input"
34582
+ : "'" + (this.terminals_[symbol] || symbol) + "'");
34583
+ }
34584
+ this.parseError(errStr, {
34585
+ text: this.lexer.match,
34586
+ token: this.terminals_[symbol] || symbol,
34587
+ line: this.lexer.yylineno,
34588
+ loc: yyloc,
34589
+ expected: expected,
34590
+ });
34591
+ }
34592
+
34593
+ // just recovered from another error
34594
+ if (recovering == 3) {
34595
+ if (symbol == EOF) {
34596
+ throw new Error(errStr || "Parsing halted.");
34597
+ }
34598
+
34599
+ // discard current lookahead and grab another
34600
+ yyleng = this.lexer.yyleng;
34601
+ yytext = this.lexer.yytext;
34602
+ yylineno = this.lexer.yylineno;
34603
+ yyloc = this.lexer.yylloc;
34604
+ symbol = lex();
34605
+ }
34606
+
34607
+ // try to recover from error
34608
+ while (1) {
34609
+ // check for error recovery rule in this state
34610
+ if (TERROR.toString() in table[state]) {
34611
+ break;
34612
+ }
34613
+ if (state === 0) {
34614
+ throw new Error(errStr || "Parsing halted.");
34615
+ }
34616
+ popStack(1);
34617
+ state = stack[stack.length - 1];
34618
+ }
34619
+ preErrorSymbol = symbol == 2 ? null : symbol; // save the lookahead token
34620
+ symbol = TERROR; // insert generic error symbol as new lookahead
34621
+ state = stack[stack.length - 1];
34622
+ action = table[state] && table[state][TERROR];
34623
+ recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
34624
+ }
34625
+
34626
+ // this shouldn't happen, unless resolve defaults are off
34627
+ if (action[0] instanceof Array && action.length > 1) {
34628
+ throw new Error(
34629
+ "Parse Error: multiple actions possible at state: " +
34630
+ state +
34631
+ ", token: " +
34632
+ symbol,
34633
+ );
34634
+ }
34635
+ switch (action[0]) {
34636
+ case 1:
34637
+ // shift
34638
+ //this.shiftCount++;
34639
+
34640
+ stack.push(symbol);
34641
+ vstack.push(this.lexer.yytext);
34642
+ lstack.push(this.lexer.yylloc);
34643
+ stack.push(action[1]); // push state
34644
+ symbol = null;
34645
+ if (!preErrorSymbol) {
34646
+ // normal execution/no error
34647
+ yyleng = this.lexer.yyleng;
34648
+ yytext = this.lexer.yytext;
34649
+ yylineno = this.lexer.yylineno;
34650
+ yyloc = this.lexer.yylloc;
34651
+ if (recovering > 0) recovering--;
34652
+ } else {
34653
+ // error just occurred, resume old lookahead f/ before error
34654
+ symbol = preErrorSymbol;
34655
+ preErrorSymbol = null;
34656
+ }
34657
+ break;
34658
+ case 2:
34659
+ // reduce
34660
+ //this.reductionCount++;
34661
+
34662
+ len = this.productions_[action[1]][1];
34663
+
34664
+ // perform semantic action
34665
+ yyval.$ = vstack[vstack.length - len]; // default to $$ = $1
34666
+ // default location, uses first token for firsts, last for lasts
34667
+ yyval._$ = {
34668
+ first_line: lstack[lstack.length - (len || 1)].first_line,
34669
+ last_line: lstack[lstack.length - 1].last_line,
34670
+ first_column: lstack[lstack.length - (len || 1)].first_column,
34671
+ last_column: lstack[lstack.length - 1].last_column,
34672
+ };
34673
+ if (ranges) {
34674
+ yyval._$.range = [
34675
+ lstack[lstack.length - (len || 1)].range[0],
34676
+ lstack[lstack.length - 1].range[1],
34677
+ ];
34678
+ }
34679
+ r = this.performAction.call(
34680
+ yyval,
34681
+ yytext,
34682
+ yyleng,
34683
+ yylineno,
34684
+ this.yy,
34685
+ action[1],
34686
+ vstack,
34687
+ lstack,
34688
+ );
34689
+ if (typeof r !== "undefined") {
34690
+ return r;
34691
+ }
34692
+
34693
+ // pop off stack
34694
+ if (len) {
34695
+ stack = stack.slice(0, -1 * len * 2);
34696
+ vstack = vstack.slice(0, -1 * len);
34697
+ lstack = lstack.slice(0, -1 * len);
34698
+ }
34699
+ stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)
34700
+ vstack.push(yyval.$);
34701
+ lstack.push(yyval._$);
34702
+ // goto new state = table[STATE][NONTERMINAL]
34703
+ newState =
34704
+ table[stack[stack.length - 2]][stack[stack.length - 1]];
34705
+ stack.push(newState);
34706
+ break;
34707
+ case 3:
34708
+ // accept
34709
+ return true;
34710
+ }
34711
+ }
34712
+ return true;
34713
+ },
34714
+ };
34715
+ var lexer = (function () {
34716
+ var lexer = {
34717
+ EOF: 1,
34718
+ parseError: function parseError(str, hash) {
34719
+ if (this.yy.parser) {
34720
+ this.yy.parser.parseError(str, hash);
34721
+ } else {
34722
+ throw new Error(str);
34723
+ }
34724
+ },
34725
+ setInput: function setInput(input) {
34726
+ this._input = input;
34727
+ this._more = this._less = this.done = false;
34728
+ this.yylineno = this.yyleng = 0;
34729
+ this.yytext = this.matched = this.match = "";
34730
+ this.conditionStack = ["INITIAL"];
34731
+ this.yylloc = {
34732
+ first_line: 1,
34733
+ first_column: 0,
34734
+ last_line: 1,
34735
+ last_column: 0,
34736
+ };
34737
+ if (this.options.ranges) this.yylloc.range = [0, 0];
34738
+ this.offset = 0;
34739
+ return this;
34740
+ },
34741
+ input: function input() {
34742
+ var ch = this._input[0];
34743
+ this.yytext += ch;
34744
+ this.yyleng++;
34745
+ this.offset++;
34746
+ this.match += ch;
34747
+ this.matched += ch;
34748
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
34749
+ if (lines) {
34750
+ this.yylineno++;
34751
+ this.yylloc.last_line++;
34752
+ } else {
34753
+ this.yylloc.last_column++;
34754
+ }
34755
+ if (this.options.ranges) this.yylloc.range[1]++;
34756
+ this._input = this._input.slice(1);
34757
+ return ch;
34758
+ },
34759
+ unput: function unput(ch) {
34760
+ var len = ch.length;
34761
+ var lines = ch.split(/(?:\r\n?|\n)/g);
34762
+ this._input = ch + this._input;
34763
+ this.yytext = this.yytext.substr(0, this.yytext.length - len - 1);
34764
+ //this.yyleng -= len;
34765
+ this.offset -= len;
34766
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
34767
+ this.match = this.match.substr(0, this.match.length - 1);
34768
+ this.matched = this.matched.substr(0, this.matched.length - 1);
34769
+ if (lines.length - 1) this.yylineno -= lines.length - 1;
34770
+ var r = this.yylloc.range;
34771
+ this.yylloc = {
34772
+ first_line: this.yylloc.first_line,
34773
+ last_line: this.yylineno + 1,
34774
+ first_column: this.yylloc.first_column,
34775
+ last_column: lines
34776
+ ? (lines.length === oldLines.length
34777
+ ? this.yylloc.first_column
34778
+ : 0) +
34779
+ oldLines[oldLines.length - lines.length].length -
34780
+ lines[0].length
34781
+ : this.yylloc.first_column - len,
34782
+ };
34783
+ if (this.options.ranges) {
34784
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
34785
+ }
34786
+ return this;
34787
+ },
34788
+ more: function more() {
34789
+ this._more = true;
34790
+ return this;
34791
+ },
34792
+ less: function less(n) {
34793
+ this.unput(this.match.slice(n));
34794
+ },
34795
+ pastInput: function pastInput() {
34796
+ var past = this.matched.substr(
34797
+ 0,
34798
+ this.matched.length - this.match.length,
34799
+ );
34800
+ return (
34801
+ (past.length > 20 ? "..." : "") +
34802
+ past.substr(-20).replace(/\n/g, "")
34803
+ );
34804
+ },
34805
+ upcomingInput: function upcomingInput() {
34806
+ var next = this.match;
34807
+ if (next.length < 20) {
34808
+ next += this._input.substr(0, 20 - next.length);
34809
+ }
34810
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(
34811
+ /\n/g,
34812
+ "",
34813
+ );
34814
+ },
34815
+ showPosition: function showPosition() {
34816
+ var pre = this.pastInput();
34817
+ var c = new Array(pre.length + 1).join("-");
34818
+ return pre + this.upcomingInput() + "\n" + c + "^";
34819
+ },
34820
+ next: function next() {
34821
+ if (this.done) {
34822
+ return this.EOF;
34823
+ }
34824
+ if (!this._input) this.done = true;
34825
+ var token, match, tempMatch, index, lines;
34826
+ if (!this._more) {
34827
+ this.yytext = "";
34828
+ this.match = "";
34829
+ }
34830
+ var rules = this._currentRules();
34831
+ for (var i = 0; i < rules.length; i++) {
34832
+ tempMatch = this._input.match(this.rules[rules[i]]);
34833
+ if (
34834
+ tempMatch &&
34835
+ (!match || tempMatch[0].length > match[0].length)
34836
+ ) {
34837
+ match = tempMatch;
34838
+ index = i;
34839
+ if (!this.options.flex) break;
34840
+ }
34841
+ }
34842
+ if (match) {
34843
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
34844
+ if (lines) this.yylineno += lines.length;
34845
+ this.yylloc = {
34846
+ first_line: this.yylloc.last_line,
34847
+ last_line: this.yylineno + 1,
34848
+ first_column: this.yylloc.last_column,
34849
+ last_column: lines
34850
+ ? lines[lines.length - 1].length -
34851
+ lines[lines.length - 1].match(/\r?\n?/)[0].length
34852
+ : this.yylloc.last_column + match[0].length,
34853
+ };
34854
+ this.yytext += match[0];
34855
+ this.match += match[0];
34856
+ this.matches = match;
34857
+ this.yyleng = this.yytext.length;
34858
+ if (this.options.ranges) {
34859
+ this.yylloc.range = [this.offset, (this.offset += this.yyleng)];
34860
+ }
34861
+ this._more = false;
34862
+ this._input = this._input.slice(match[0].length);
34863
+ this.matched += match[0];
34864
+ token = this.performAction.call(
34865
+ this,
34866
+ this.yy,
34867
+ this,
34868
+ rules[index],
34869
+ this.conditionStack[this.conditionStack.length - 1],
34870
+ );
34871
+ if (this.done && this._input) this.done = false;
34872
+ if (token) return token;
34873
+ else return;
34874
+ }
34875
+ if (this._input === "") {
34876
+ return this.EOF;
34877
+ } else {
34878
+ return this.parseError(
34879
+ "Lexical error on line " +
34880
+ (this.yylineno + 1) +
34881
+ ". Unrecognized text.\n" +
34882
+ this.showPosition(),
34883
+ {
34884
+ text: "",
34885
+ token: null,
34886
+ line: this.yylineno,
34887
+ },
34888
+ );
34889
+ }
34890
+ },
34891
+ lex: function lex() {
34892
+ var r = this.next();
34893
+ if (typeof r !== "undefined") {
34894
+ return r;
34895
+ } else {
34896
+ return this.lex();
34897
+ }
34898
+ },
34899
+ begin: function begin(condition) {
34900
+ this.conditionStack.push(condition);
34901
+ },
34902
+ popState: function popState() {
34903
+ return this.conditionStack.pop();
34904
+ },
34905
+ _currentRules: function _currentRules() {
34906
+ return this.conditions[
34907
+ this.conditionStack[this.conditionStack.length - 1]
34908
+ ].rules;
34909
+ },
34910
+ topState: function topState() {
34911
+ return this.conditionStack[this.conditionStack.length - 2];
34912
+ },
34913
+ pushState: function begin(condition) {
34914
+ this.begin(condition);
34915
+ },
34916
+ };
34917
+ lexer.options = {};
34918
+ lexer.performAction = function anonymous(
34919
+ yy,
34920
+ yy_,
34921
+ $avoiding_name_collisions,
34922
+ YY_START,
34923
+ ) {
34924
+ switch ($avoiding_name_collisions) {
34925
+ case 0:
34926
+ return "*";
34927
+ case 1:
34928
+ return "/";
34929
+ case 2:
34930
+ return "-";
34931
+ case 3:
34932
+ return "+";
34933
+ case 4:
34934
+ return "^";
34935
+ case 5:
34936
+ return "(";
34937
+ case 6:
34938
+ return ")";
34939
+ case 7:
34940
+ return ",";
34941
+ case 8:
34942
+ return "==";
34943
+ case 9:
34944
+ return "!=";
34945
+ case 10:
34946
+ return "~=";
34947
+ case 11:
34948
+ return ">=";
34949
+ case 12:
34950
+ return "<=";
34951
+ case 13:
34952
+ return "<";
34953
+ case 14:
34954
+ return ">";
34955
+ case 15:
34956
+ return "notIn";
34957
+ case 16:
34958
+ return "and";
34959
+ case 17:
34960
+ return "or";
34961
+ case 18:
34962
+ return "not";
34963
+ case 19:
34964
+ return "in";
34965
+ case 20:
34966
+ return "of";
34967
+ case 21:
34968
+ return "if";
34969
+ case 22:
34970
+ return "then";
34971
+ case 23:
34972
+ return "else";
34973
+ case 24:
34974
+ return "mod";
34975
+ case 25:
34976
+ break;
34977
+ case 26:
34978
+ return "Number";
34979
+ case 27:
34980
+ yy_.yytext = JSON.stringify({
34981
+ name: yy_.yytext,
34982
+ type: "unescaped",
34983
+ });
34984
+ return "Symbol";
34985
+ case 28:
34986
+ yy_.yytext = JSON.stringify({
34987
+ name: yy.buildString("'", yy_.yytext),
34988
+ type: "single-quoted",
34989
+ });
34990
+ return "Symbol";
34991
+ case 29:
34992
+ yy_.yytext = JSON.stringify(yy.buildString('"', yy_.yytext));
34993
+ return "String";
34994
+ case 30:
34995
+ return "%";
34996
+ case 31:
34997
+ return "?";
34998
+ case 32:
34999
+ return ":";
35000
+ case 33:
35001
+ return "EndOfExpression";
35002
+ }
35003
+ };
35004
+ lexer.rules = [
35005
+ /^(?:\*)/,
35006
+ /^(?:\/)/,
35007
+ /^(?:-)/,
35008
+ /^(?:\+)/,
35009
+ /^(?:\^)/,
35010
+ /^(?:\()/,
35011
+ /^(?:\))/,
35012
+ /^(?:\,)/,
35013
+ /^(?:==)/,
35014
+ /^(?:\!=)/,
35015
+ /^(?:\~=)/,
35016
+ /^(?:>=)/,
35017
+ /^(?:<=)/,
35018
+ /^(?:<)/,
35019
+ /^(?:>)/,
35020
+ /^(?:not\s+in[^\w])/,
35021
+ /^(?:and[^\w])/,
35022
+ /^(?:or[^\w])/,
35023
+ /^(?:not[^\w])/,
35024
+ /^(?:in[^\w])/,
35025
+ /^(?:of[^\w])/,
35026
+ /^(?:if[^\w])/,
35027
+ /^(?:then[^\w])/,
35028
+ /^(?:else[^\w])/,
35029
+ /^(?:mod[^\w])/,
35030
+ /^(?:\s+)/,
35031
+ /^(?:[0-9]+(?:\.[0-9]+)?(?![0-9\.]))/,
35032
+ /^(?:[a-zA-Z$_][\.a-zA-Z0-9$_]*)/,
35033
+ /^(?:'(?:\\'|\\\\|[^'\\])*')/,
35034
+ /^(?:"(?:\\"|\\\\|[^"\\])*")/,
35035
+ /^(?:\%)/,
35036
+ /^(?:\?)/,
35037
+ /^(?::)/,
35038
+ /^(?:$)/,
35039
+ ];
35040
+ lexer.conditions = {
35041
+ INITIAL: {
35042
+ rules: [
35043
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
35044
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
35045
+ ],
35046
+ inclusive: true,
35047
+ },
35048
+ };
35049
+ return lexer;
35050
+ })();
35051
+ parser.lexer = lexer;
35052
+ function Parser() {
35053
+ this.yy = {};
35054
+ }
35055
+ Parser.prototype = parser;
35056
+ parser.Parser = Parser;
35057
+ return new Parser();
35058
+ })();
35059
+ var parser = _parser;
35060
+ _parser.Parser;
35061
+
35062
+ /**
35063
+ * Runtime error – user attempted to call a function
35064
+ * which is not a predefined function, nor specified
35065
+ * in `options.extraFunctions`.
35066
+ *
35067
+ * @prop {string} functionName
35068
+ * @prop {string} I18N_STRING has the value `'UNKNOWN_FUNCTION'`
35069
+ */
35070
+ var UnknownFunctionError = /*#__PURE__*/ (function (_ReferenceError) {
35071
+ function UnknownFunctionError(funcName) {
35072
+ var _this;
35073
+ _classCallCheck(this, UnknownFunctionError);
35074
+ _this = _callSuper(this, UnknownFunctionError, [
35075
+ "Unknown function: ".concat(funcName, "()"),
35076
+ ]);
35077
+ _defineProperty(_this, "I18N_STRING", "UNKNOWN_FUNCTION");
35078
+ _this.functionName = funcName;
35079
+ return _this;
35080
+ }
35081
+ _inherits(UnknownFunctionError, _ReferenceError);
35082
+ return _createClass(UnknownFunctionError);
35083
+ })(/*#__PURE__*/ _wrapNativeSuper(ReferenceError));
35084
+
35085
+ /**
35086
+ * Runtime error – user attempted to access a property which
35087
+ * is not present in the `data` object, nor in the `constants`.
35088
+ * If the property is meant to be empty, use `undefined` or
35089
+ * `null` as its value. If you need to use optional properties
35090
+ * in your `data`, define a `customProp` function.
35091
+ *
35092
+ * @prop {string} propertyName
35093
+ * @prop {string} I18N_STRING has the value `'UNKNOWN_PROPERTY'`
35094
+ */
35095
+ var UnknownPropertyError = /*#__PURE__*/ (function (_ReferenceError2) {
35096
+ function UnknownPropertyError(propName) {
35097
+ var _this2;
35098
+ _classCallCheck(this, UnknownPropertyError);
35099
+ _this2 = _callSuper(this, UnknownPropertyError, [
35100
+ "Property \u201C".concat(propName, "\u201D does not exist."),
35101
+ ]);
35102
+ _defineProperty(_this2, "I18N_STRING", "UNKNOWN_PROPERTY");
35103
+ _this2.propertyName = propName;
35104
+ return _this2;
35105
+ }
35106
+ _inherits(UnknownPropertyError, _ReferenceError2);
35107
+ return _createClass(UnknownPropertyError);
35108
+ })(/*#__PURE__*/ _wrapNativeSuper(ReferenceError));
35109
+
35110
+ /**
35111
+ * Compile time error – you specified an option which
35112
+ * was not recognized by Filtrex. Double-check your
35113
+ * spelling and the version of Filtrex you are using.
35114
+ *
35115
+ * @prop {string} keyName
35116
+ * @prop {string} I18N_STRING has the value `'UNKNOWN_OPTION'`
35117
+ */
35118
+ var UnknownOptionError = /*#__PURE__*/ (function (_TypeError) {
35119
+ function UnknownOptionError(key) {
35120
+ var _this3;
35121
+ _classCallCheck(this, UnknownOptionError);
35122
+ _this3 = _callSuper(this, UnknownOptionError, [
35123
+ "Unknown option: ".concat(key),
35124
+ ]);
35125
+ _defineProperty(_this3, "I18N_STRING", "UNKNOWN_OPTION");
35126
+ _this3.keyName = key;
35127
+ return _this3;
35128
+ }
35129
+ _inherits(UnknownOptionError, _TypeError);
35130
+ return _createClass(UnknownOptionError);
35131
+ })(/*#__PURE__*/ _wrapNativeSuper(TypeError));
35132
+
35133
+ /**
35134
+ * Runtime error – user passed a different type than the one
35135
+ * accepted by the function or operator.
35136
+ *
35137
+ * The possible values of `expectedType` and `recievedType`
35138
+ * are: `"undefined"`, `"null"`, `"true"`, `"false"`, `"number"`,
35139
+ * `"text"`, `"unknown type"`, `"list"`, `"object"`, `"text or number"`
35140
+ * and `"logical value (“true” or “false”)"`
35141
+ *
35142
+ * @prop {string} expectedType
35143
+ * @prop {string} recievedType
35144
+ * @prop {string} I18N_STRING has the value `'UNEXPECTED_TYPE'`
35145
+ */
35146
+ var UnexpectedTypeError = /*#__PURE__*/ (function (_TypeError2) {
35147
+ function UnexpectedTypeError(expected, got) {
35148
+ var _this4;
35149
+ _classCallCheck(this, UnexpectedTypeError);
35150
+ _this4 = _callSuper(this, UnexpectedTypeError, [
35151
+ "Expected a ".concat(expected, ", but got a ").concat(got, " instead."),
35152
+ ]);
35153
+ _defineProperty(_this4, "I18N_STRING", "UNEXPECTED_TYPE");
35154
+ _this4.expectedType = expected;
35155
+ _this4.recievedType = got;
35156
+ return _this4;
35157
+ }
35158
+ _inherits(UnexpectedTypeError, _TypeError2);
35159
+ return _createClass(UnexpectedTypeError);
35160
+ })(/*#__PURE__*/ _wrapNativeSuper(TypeError));
35161
+
35162
+ /**
35163
+ * An internal error. This was not meant to happen, please report
35164
+ * at https://github.com/cshaa/filtrex/
35165
+ *
35166
+ * @prop {string} I18N_STRING has the value `'INTERNAL'`
35167
+ */
35168
+ var InternalError = /*#__PURE__*/ (function (_Error) {
35169
+ function InternalError(message) {
35170
+ var _this5;
35171
+ _classCallCheck(this, InternalError);
35172
+ _this5 = _callSuper(this, InternalError, [message]);
35173
+ _defineProperty(_this5, "I18N_STRING", "INTERNAL");
35174
+ return _this5;
35175
+ }
35176
+ _inherits(InternalError, _Error);
35177
+ return _createClass(InternalError);
35178
+ })(/*#__PURE__*/ _wrapNativeSuper(Error));
35179
+
35180
+ /**
35181
+ * Determines whether an object has a property with the specified name.
35182
+ * @param {object} obj the object to be checked
35183
+ * @param {string|number} prop property name
35184
+ */
35185
+ function hasOwnProperty(obj, prop) {
35186
+ if (_typeof(obj) === "object" || typeof obj === "function") {
35187
+ return Object.prototype.hasOwnProperty.call(obj, prop);
35188
+ }
35189
+ return false;
35190
+ }
35191
+
35192
+ /**
35193
+ * Mathematically correct modulo
35194
+ * @param {number} a
35195
+ * @param {number} b
35196
+ * @returns {number}
35197
+ */
35198
+ function mod(a, b) {
35199
+ return ((a % b) + b) % b;
35200
+ }
35201
+
35202
+ /**
35203
+ * Converts instances of Number, String and Boolean to primitives
35204
+ */
35205
+ function unbox(value) {
35206
+ if (_typeof(value) !== "object") return value;
35207
+ if (
35208
+ value instanceof Number ||
35209
+ value instanceof String ||
35210
+ value instanceof Boolean
35211
+ )
35212
+ return value.valueOf();
35213
+ }
35214
+
35215
+ /**
35216
+ * Unboxes value and unwraps it from a single-element array
35217
+ */
35218
+ function unwrap(value) {
35219
+ if (Array.isArray(value) && value.length === 1) value = value[0];
35220
+ return unbox(value);
35221
+ }
35222
+
35223
+ /**
35224
+ * Returns the type of a value in a neat, user-readable way
35225
+ */
35226
+ function prettyType(value) {
35227
+ value = unwrap(value);
35228
+ if (value === undefined) return "undefined";
35229
+ if (value === null) return "null";
35230
+ if (value === true) return "true";
35231
+ if (value === false) return "false";
35232
+ if (typeof value === "number") return "number";
35233
+ if (typeof value === "string") return "text";
35234
+ if (_typeof(value) !== "object" && typeof value !== "function")
35235
+ return "unknown type";
35236
+ if (Array.isArray(value)) return "list";
35237
+ return "object";
35238
+ }
35239
+
35240
+ // Type assertions/coertions
35241
+
35242
+ function num(value) {
35243
+ value = unwrap(value);
35244
+ if (typeof value === "number") return value;
35245
+ throw new UnexpectedTypeError("number", prettyType(value));
35246
+ }
35247
+ function str(value) {
35248
+ value = unwrap(value);
35249
+ if (typeof value === "string") return value;
35250
+ throw new UnexpectedTypeError("text", prettyType(value));
35251
+ }
35252
+ function numstr(value) {
35253
+ value = unwrap(value);
35254
+ if (typeof value === "string" || typeof value === "number") return value;
35255
+ throw new UnexpectedTypeError("text or number", prettyType(value));
35256
+ }
35257
+ function bool(value) {
35258
+ value = unwrap(value);
35259
+ if (typeof value === "boolean") return value;
35260
+ throw new UnexpectedTypeError(
35261
+ "logical value (“true” or “false”)",
35262
+ prettyType(value),
35263
+ );
35264
+ }
35265
+ function arr(value) {
35266
+ if (value === undefined || value === null) {
35267
+ throw new UnexpectedTypeError("list", prettyType(value));
35268
+ }
35269
+ if (Array.isArray(value)) {
35270
+ return value;
35271
+ } else {
35272
+ return [value];
35273
+ }
35274
+ }
35275
+
35276
+ /**
35277
+ * Array.flat polyfill from MDN
35278
+ */
35279
+ function flatten(input) {
35280
+ var stack = _toConsumableArray(input);
35281
+ var res = [];
35282
+ while (stack.length) {
35283
+ // pop value from stack
35284
+ var next = stack.pop();
35285
+ if (Array.isArray(next)) {
35286
+ // push back array items, won't modify the original input
35287
+ stack.push.apply(stack, _toConsumableArray(next));
35288
+ } else {
35289
+ res.push(next);
35290
+ }
35291
+ }
35292
+ // reverse to restore input order
35293
+ return res.reverse();
35294
+ }
35295
+
35296
+ // Shared utility functions
35297
+ var std = {
35298
+ isfn: function isfn(fns, funcName) {
35299
+ return (
35300
+ hasOwnProperty(fns, funcName) && typeof fns[funcName] === "function"
35301
+ );
35302
+ },
35303
+ unknown: function unknown(funcName) {
35304
+ throw new UnknownFunctionError(funcName);
35305
+ },
35306
+ coerceArray: arr,
35307
+ coerceNumber: num,
35308
+ coerceNumberOrString: numstr,
35309
+ coerceBoolean: bool,
35310
+ isSubset: function isSubset(a, b) {
35311
+ var A = arr(a);
35312
+ var B = arr(b);
35313
+ return A.every(function (val) {
35314
+ return B.includes(val);
35315
+ });
35316
+ },
35317
+ warnDeprecated: (function () {
35318
+ var warnMax = 3;
35319
+ var warnedTimes = {
35320
+ ternary: 0,
35321
+ modulo: 0,
35322
+ };
35323
+ return function (cause, value) {
35324
+ switch (cause) {
35325
+ case "ternary":
35326
+ if (warnedTimes.ternary++ >= warnMax) break;
35327
+ console.warn(
35328
+ "The use of ? and : as conditional operators has been deprecated " +
35329
+ "in Filtrex v3 in favor of the if..then..else ternary operator. " +
35330
+ "See issue #34 for more information.",
35331
+ );
35332
+ break;
35333
+ case "modulo":
35334
+ if (warnedTimes.modulo++ >= warnMax) break;
35335
+ console.warn(
35336
+ "The use of '%' as a modulo operator has been deprecated in Filtrex v3 " +
35337
+ "in favor of the 'mod' operator. You can use it like this: '3 mod 2 == 1'. " +
35338
+ "See issue #48 for more information.",
35339
+ );
35340
+ break;
35341
+ }
35342
+ return value;
35343
+ };
35344
+ })(),
35345
+ buildString: function buildString(quote, literal) {
35346
+ quote = String(quote)[0];
35347
+ literal = String(literal);
35348
+ var built = "";
35349
+ if (literal[0] !== quote || literal[literal.length - 1] !== quote)
35350
+ throw new InternalError(
35351
+ "Unexpected internal error: String literal doesn't begin/end with the right quotation mark.",
35352
+ );
35353
+ for (var i = 1; i < literal.length - 1; i++) {
35354
+ if (literal[i] === "\\") {
35355
+ i++;
35356
+ if (i >= literal.length - 1)
35357
+ throw new InternalError(
35358
+ "Unexpected internal error: Unescaped backslash at the end of string literal.",
35359
+ );
35360
+ if (literal[i] === "\\") built += "\\";
35361
+ else if (literal[i] === quote) built += quote;
35362
+ else
35363
+ throw new InternalError(
35364
+ "Unexpected internal error: Invalid escaped character in string literal: ".concat(
35365
+ literal[i],
35366
+ ),
35367
+ );
35368
+ } else if (literal[i] === quote) {
35369
+ throw new InternalError(
35370
+ "Unexpected internal error: String literal contains unescaped quotation mark.",
35371
+ );
35372
+ } else {
35373
+ built += literal[i];
35374
+ }
35375
+ }
35376
+ return built;
35377
+ },
35378
+ reduceRelation: function reduceRelation(arr) {
35379
+ var declarations = [];
35380
+ var comparisons = [];
35381
+ var previousExpression = flatten([arr[0]]).join("");
35382
+ var j = 0;
35383
+ for (var i = 1; i < arr.length - 1; i += 2) {
35384
+ var expr = flatten([arr[i + 1]]).join("");
35385
+ var tempVar = "tmp".concat(j++);
35386
+ comparisons.push(
35387
+ 'ops["'
35388
+ .concat(arr[i], '"](')
35389
+ .concat(previousExpression, ", ")
35390
+ .concat(tempVar, " = ")
35391
+ .concat(expr, ")"),
35392
+ );
35393
+ previousExpression = tempVar;
35394
+ declarations.push(tempVar);
35395
+ }
35396
+ return "(function(){ var "
35397
+ .concat(declarations.join(", "), "; return ")
35398
+ .concat(comparisons.join(" && "), ";})()");
35399
+ },
35400
+ };
35401
+ parser.yy = Object.create(std);
35402
+
35403
+ /**
35404
+ * A custom prop function which doesn't throw an UnknownPropertyError
35405
+ * if the user tries to access a property of `undefined` and `null`,
35406
+ * but instead returns `unknown` or `null`. This effectively turns
35407
+ * `a of b` into `b.?a`. You can use this function using the following
35408
+ * code:
35409
+ * ```
35410
+ * import {
35411
+ * compileExpression,
35412
+ * useOptionalChaining
35413
+ * } from 'filtrex'
35414
+ *
35415
+ * const expr = "foo of bar"
35416
+ *
35417
+ * const fn = compileExpression(expr, {
35418
+ * customProp: useOptionalChaining
35419
+ * });
35420
+ *
35421
+ * fn({ bar: null }) // → null
35422
+ * ```
35423
+ */
35424
+ function useOptionalChaining(name, get, obj, type) {
35425
+ if (obj === null || obj === undefined) return obj;
35426
+ return get(name);
35427
+ }
35428
+
35429
+ /**
35430
+ * A custom prop function which treats dots inside a symbol
35431
+ * as property accessors. If you want to use the `foo.bar`
35432
+ * syntax to access properties instead of the default
35433
+ * `bar of foo`, you can use this function using the following
35434
+ * code:
35435
+ * ```
35436
+ * import {
35437
+ * compileExpression,
35438
+ * useDotAccessOperator
35439
+ * } from 'filtrex'
35440
+ *
35441
+ * const expr = "foo.bar"
35442
+ *
35443
+ * const fn = compileExpression(expr, {
35444
+ * customProp: useDotAccessOperator
35445
+ * });
35446
+ *
35447
+ * fn({ foo: { bar: 42 } }) // → 42
35448
+ * ```
35449
+ */
35450
+ function useDotAccessOperator(name, get, obj, type) {
35451
+ // ignore dots inside escaped symbol
35452
+ if (type === "single-quoted") return get(name);
35453
+ var parts = name.split(".");
35454
+ var _iterator = _createForOfIteratorHelper(parts),
35455
+ _step;
35456
+ try {
35457
+ for (_iterator.s(); !(_step = _iterator.n()).done; ) {
35458
+ var _obj;
35459
+ var propertyName = _step.value;
35460
+ if (
35461
+ hasOwnProperty(
35462
+ (_obj = obj) !== null && _obj !== void 0 ? _obj : {},
35463
+ propertyName,
35464
+ )
35465
+ ) {
35466
+ obj = obj[propertyName];
35467
+ } else {
35468
+ throw new UnknownPropertyError(propertyName);
35469
+ }
35470
+ }
35471
+ } catch (err) {
35472
+ _iterator.e(err);
35473
+ } finally {
35474
+ _iterator.f();
35475
+ }
35476
+ return obj;
35477
+ }
35478
+
35479
+ /**
35480
+ * A custom prop function which combines `useOptionalChaining` and `useDotAccessOperator`.
35481
+ * The user can use both `foo of bar` and `bar.foo`, both have optional chaining.
35482
+ * You can use this function using the following code:
35483
+ * ```
35484
+ * import {
35485
+ * compileExpression,
35486
+ * useDotAccessOperatorAndOptionalChaining
35487
+ * } from 'filtrex'
35488
+ *
35489
+ * const expr = "foo.bar"
35490
+ *
35491
+ * const fn = compileExpression(expr, {
35492
+ * customProp: useDotAccessOperatorAndOptionalChaining
35493
+ * });
35494
+ *
35495
+ * fn({ foo: null }) // → null
35496
+ * ```
35497
+ */
35498
+ function useDotAccessOperatorAndOptionalChaining(name, get, obj, type) {
35499
+ if (obj === null || obj === undefined) return obj;
35500
+
35501
+ // ignore dots inside escaped symbol
35502
+ if (type === "single-quoted") return get(name);
35503
+ var parts = name.split(".");
35504
+ var _iterator2 = _createForOfIteratorHelper(parts),
35505
+ _step2;
35506
+ try {
35507
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {
35508
+ var propertyName = _step2.value;
35509
+ if (obj === null || obj === undefined) {
35510
+ return obj;
35511
+ } else {
35512
+ obj = obj[propertyName];
35513
+ }
35514
+ }
35515
+ } catch (err) {
35516
+ _iterator2.e(err);
35517
+ } finally {
35518
+ _iterator2.f();
35519
+ }
35520
+ return obj;
35521
+ }
35522
+
35523
+ /**
35524
+ * A simple, safe, JavaScript expression engine, allowing end-users to enter arbitrary expressions without p0wning you.
35525
+ *
35526
+ * @example
35527
+ * // Input from user (e.g. search filter)
35528
+ * let expression = 'transactions <= 5 and abs(profit) > 20.5';
35529
+ *
35530
+ * // Compile expression to executable function
35531
+ * let myfilter = compileExpression(expression);
35532
+ *
35533
+ * // Execute function
35534
+ * myfilter({transactions: 3, profit:-40.5}); // returns 1
35535
+ * myfilter({transactions: 3, profit:-14.5}); // returns 0
35536
+ *
35537
+ * @param expression
35538
+ * The expression to be parsed. Under the hood, the expression gets compiled to a clean and fast JavaScript function.
35539
+ * There are only 2 types: numbers and strings. Numbers may be floating point or integers. Boolean logic is applied
35540
+ * on the truthy value of values (e.g. any non-zero number is true, any non-empty string is true, otherwise false).
35541
+ * Examples of numbers: `43`, `-1.234`; example of a string: `"hello"`; example of external data variable: `foo`, `a.b.c`,
35542
+ * `'foo-bar'`.
35543
+ * You can use the following operations:
35544
+ * * `x + y` Add
35545
+ * * `x - y` Subtract
35546
+ * * `x * y` Multiply
35547
+ * * `x / y` Divide
35548
+ * * `x ^ y` Power
35549
+ * * `x mod y` Modulo
35550
+ * * `x == y` Equals
35551
+ * * `x < y` Less than
35552
+ * * `x <= y` Less than or equal to
35553
+ * * `x > y` Greater than
35554
+ * * `x >= y` Greater than or equal to
35555
+ * * `x == y <= z` Chained relation, equivalent to `(x == y and y <= z)`
35556
+ * * `x of y` Get property x of object y
35557
+ * * `x in (a, b, c)` Equivalent to `(x == a or x == b or x == c)`
35558
+ * * `x not in (a, b, c)` Equivalent to `(x != a and x != b and x != c)`
35559
+ * * `x or y` Boolean or
35560
+ * * `x and y` Boolean and
35561
+ * * `not x` Boolean not
35562
+ * * `if x then y else z` If boolean x, value y, else z
35563
+ * * `( x )` Explicity operator precedence
35564
+ * * `( x, y, z )` Array of elements x, y and z
35565
+ * * `abs(x)` Absolute value
35566
+ * * `ceil(x)` Round floating point up
35567
+ * * `floor(x)` Round floating point down
35568
+ * * `log(x)` Natural logarithm
35569
+ * * `log2(x)` Binary logarithm
35570
+ * * `log10(x)` Decadic logarithm
35571
+ * * `max(a, b, c...)` Max value (variable length of args)
35572
+ * * `min(a, b, c...)` Min value (variable length of args)
35573
+ * * `round(x)` Round floating point
35574
+ * * `sqrt(x)` Square root
35575
+ * * `exists(x)` True if `x` is neither `undefined` nor `null`
35576
+ * * `empty(x)` True if `x` doesn't exist, it is an empty string or empty array
35577
+ * * `myFooBarFunction(x)` Custom function defined in `options.extraFunctions`
35578
+ */
35579
+ function compileExpression(expression, options) {
35580
+ var _constants;
35581
+ // Check and coerce arguments
35582
+
35583
+ if (arguments.length > 2) throw new TypeError("Too many arguments.");
35584
+ options = _typeof(options) === "object" ? options : {};
35585
+ var knownOptions = [
35586
+ "extraFunctions",
35587
+ "constants",
35588
+ "customProp",
35589
+ "operators",
35590
+ ];
35591
+ var _options = options,
35592
+ extraFunctions = _options.extraFunctions,
35593
+ constants = _options.constants,
35594
+ customProp = _options.customProp,
35595
+ operators = _options.operators;
35596
+ for (
35597
+ var _i = 0, _Object$keys = Object.keys(options);
35598
+ _i < _Object$keys.length;
35599
+ _i++
35600
+ ) {
35601
+ var key = _Object$keys[_i];
35602
+ if (!knownOptions.includes(key)) throw new UnknownOptionError(key);
35603
+ }
35604
+
35605
+ // Functions available to the expression
35606
+
35607
+ var functions = {
35608
+ abs: Math.abs,
35609
+ ceil: Math.ceil,
35610
+ floor: Math.floor,
35611
+ log: Math.log,
35612
+ log2: Math.log2,
35613
+ log10: Math.log10,
35614
+ max: Math.max,
35615
+ min: Math.min,
35616
+ round: Math.round,
35617
+ sqrt: Math.sqrt,
35618
+ exists: function exists(v) {
35619
+ return v !== undefined && v !== null;
35620
+ },
35621
+ empty: function empty(v) {
35622
+ return (
35623
+ v === undefined ||
35624
+ v === null ||
35625
+ v === "" ||
35626
+ (Array.isArray(v) && v.length === 0)
35627
+ );
35628
+ },
35629
+ };
35630
+ if (extraFunctions) {
35631
+ for (
35632
+ var _i2 = 0, _Object$keys2 = Object.keys(extraFunctions);
35633
+ _i2 < _Object$keys2.length;
35634
+ _i2++
35635
+ ) {
35636
+ var name = _Object$keys2[_i2];
35637
+ functions[name] = extraFunctions[name];
35638
+ }
35639
+ }
35640
+ var defaultOperators = {
35641
+ "+": function _(a, b) {
35642
+ return numstr(a) + numstr(b);
35643
+ },
35644
+ "-": function _(a, b) {
35645
+ return b === undefined ? -num(a) : num(a) - num(b);
35646
+ },
35647
+ "*": function _(a, b) {
35648
+ return num(a) * num(b);
35649
+ },
35650
+ "/": function _(a, b) {
35651
+ return num(a) / num(b);
35652
+ },
35653
+ "^": function _(a, b) {
35654
+ return Math.pow(num(a), num(b));
35655
+ },
35656
+ mod: function mod$1(a, b) {
35657
+ return mod(num(a), num(b));
35658
+ },
35659
+ "==": function _(a, b) {
35660
+ return a === b;
35661
+ },
35662
+ "!=": function _(a, b) {
35663
+ return a !== b;
35664
+ },
35665
+ "<": function _(a, b) {
35666
+ return num(a) < num(b);
35667
+ },
35668
+ "<=": function _(a, b) {
35669
+ return num(a) <= num(b);
35670
+ },
35671
+ ">=": function _(a, b) {
35672
+ return num(a) >= num(b);
35673
+ },
35674
+ ">": function _(a, b) {
35675
+ return num(a) > num(b);
35676
+ },
35677
+ "~=": function _(a, b) {
35678
+ return RegExp(str(b)).test(str(a));
35679
+ },
35680
+ };
35681
+ if (operators) {
35682
+ for (
35683
+ var _i3 = 0, _Object$keys3 = Object.keys(operators);
35684
+ _i3 < _Object$keys3.length;
35685
+ _i3++
35686
+ ) {
35687
+ var _name = _Object$keys3[_i3];
35688
+ defaultOperators[_name] = operators[_name];
35689
+ }
35690
+ }
35691
+ operators = defaultOperators;
35692
+ constants =
35693
+ (_constants = constants) !== null && _constants !== void 0
35694
+ ? _constants
35695
+ : {};
35696
+
35697
+ // Compile the expression
35698
+
35699
+ var js = flatten(parser.parse(expression));
35700
+ js.unshift("return ");
35701
+ js.push(";");
35702
+
35703
+ // Metaprogramming functions
35704
+
35705
+ function nakedProp(name, obj, type) {
35706
+ if (hasOwnProperty(obj !== null && obj !== void 0 ? obj : {}, name))
35707
+ return obj[name];
35708
+ throw new UnknownPropertyError(name);
35709
+ }
35710
+ function safeGetter(obj) {
35711
+ return function get(name) {
35712
+ if (hasOwnProperty(obj !== null && obj !== void 0 ? obj : {}, name))
35713
+ return obj[name];
35714
+ throw new UnknownPropertyError(name);
35715
+ };
35716
+ }
35717
+ if (typeof customProp === "function") {
35718
+ nakedProp = function nakedProp(name, obj, type) {
35719
+ return customProp(name, safeGetter(obj), obj, type);
35720
+ };
35721
+ }
35722
+ function createCall(fns) {
35723
+ return function call(_ref) {
35724
+ var name = _ref.name;
35725
+ for (
35726
+ var _len = arguments.length,
35727
+ args = new Array(_len > 1 ? _len - 1 : 0),
35728
+ _key = 1;
35729
+ _key < _len;
35730
+ _key++
35731
+ ) {
35732
+ args[_key - 1] = arguments[_key];
35733
+ }
35734
+ if (hasOwnProperty(fns, name) && typeof fns[name] === "function")
35735
+ return fns[name].apply(fns, args);
35736
+ throw new UnknownFunctionError(name);
35737
+ };
35738
+ }
35739
+ function prop(_ref2, obj) {
35740
+ var name = _ref2.name,
35741
+ type = _ref2.type;
35742
+ if (type === "unescaped" && hasOwnProperty(constants, name))
35743
+ return constants[name];
35744
+ return nakedProp(name, obj, type);
35745
+ }
35746
+
35747
+ // Patch together and return
35748
+
35749
+ var func = new Function("call", "ops", "std", "prop", "data", js.join(""));
35750
+ return function (data) {
35751
+ try {
35752
+ return func(createCall(functions), operators, std, prop, data);
35753
+ } catch (e) {
35754
+ return e;
35755
+ }
35756
+ };
35757
+ }
35758
+
35759
+ exports.compileExpression = compileExpression;
35760
+ exports.useDotAccessOperator = useDotAccessOperator;
35761
+ exports.useDotAccessOperatorAndOptionalChaining =
35762
+ useDotAccessOperatorAndOptionalChaining;
35763
+ exports.useOptionalChaining = useOptionalChaining;
35764
+
35765
+ Object.defineProperty(exports, "__esModule", { value: true });
35766
+
35767
+ return exports;
35768
+ })({});
35769
+
32570
35770
  </script>
32571
35771
  <script>
32572
35772
  const _Formio = (typeof Formio !== 'undefined') ? Formio : (typeof window !== 'undefined' ? window.Formio : undefined);
@@ -32575,7 +35775,7 @@ const _FormioUtils = (typeof FormioUtils !== 'undefined') ? FormioUtils : (_Form
32575
35775
  const SmartSelectField = (_Formio && _Formio.Components && _Formio.Components.components) ? _Formio.Components.components.list : class { static schema() { return {}; } };
32576
35776
  const getRandomComponentId = (_FormioUtils && _FormioUtils.getRandomComponentId) ? _FormioUtils.getRandomComponentId : () => Math.random().toString(36).substring(7);
32577
35777
  const boolValue = (_FormioUtils && _FormioUtils.boolValue) ? _FormioUtils.boolValue : (val) => !!val;
32578
-
35778
+ var browserPlatform = window.platform === "web"
32579
35779
  class SmartSelectComponent extends SmartSelectField {
32580
35780
  static schema(...extend) {
32581
35781
  return SmartSelectField.schema({
@@ -33490,68 +36690,24 @@ class SmartSelectComponent extends SmartSelectField {
33490
36690
 
33491
36691
  if (this.component.filter) {
33492
36692
  try {
33493
- let val;
33494
- let isTemplate = false;
33495
- if (this.component.filter.includes('={{')) {
33496
- const match = this.component.filter.match(/\{\{([^}]+)\}\}/);
33497
- if (match) {
33498
- isTemplate = true;
33499
- const path = match[1].trim();
33500
- let contextVal = _.get({ data: this.data }, path);
33501
- if (contextVal === undefined) {
33502
- const cleanPath = path.startsWith('data.') ? path.replace('data.', '') : path;
33503
- contextVal = _.get(this.data, cleanPath);
33504
- }
33505
- if (contextVal && typeof contextVal === 'object') {
33506
- if (contextVal.value !== undefined) {
33507
- val = contextVal.value;
33508
- } else if (contextVal.id !== undefined) {
33509
- val = contextVal.id;
33510
- } else if (contextVal.data && contextVal.data.value !== undefined) {
33511
- val = contextVal.data.value;
33512
- } else {
33513
- val = contextVal;
33514
- }
33515
- } else {
33516
- val = contextVal;
33517
- }
33518
- }
33519
- }
33520
-
33521
- if (!isTemplate || val === undefined) {
33522
- const filterStr = this.interpolate(this.component.filter, { data: this.data });
33523
- let [k, v] = filterStr.split('=').map(s => decodeURIComponent(s.trim()));
33524
- val = v;
33525
- }
33526
-
33527
- let key = this.component.filter.split('=')[0].trim();
33528
- let originalKey = key;
33529
- if (key && key.startsWith('data.')) {
33530
- key = key.replace('data.', '');
33531
- }
33532
-
33533
- logger.debug(`[TF_SDK:FilteredMasterdata] Filtering component ${this.key} using key: "${key}" (original: "${originalKey}"), filter value: "${val}"`);
33534
-
33535
- items = items.filter((row) => {
33536
- let rowVal;
33537
- if (row) {
33538
- if (row.hasOwnProperty(originalKey)) {
33539
- rowVal = row[originalKey];
33540
- } else if (row.data && row.data.hasOwnProperty(key)) {
33541
- rowVal = row.data[key];
33542
- } else if (row.hasOwnProperty(key)) {
33543
- rowVal = row[key];
33544
- } else {
33545
- rowVal = _.get(row, originalKey) !== undefined ? _.get(row, originalKey) : _.get(row, key);
33546
- }
33547
- }
33548
- const matched = rowVal !== undefined && val !== undefined && String(rowVal).toLowerCase() === String(val).toLowerCase();
33549
- return matched;
36693
+ // '~=' always takes a quoted string pattern, so quote its {{ }} token
36694
+ // for the author automatically -- no type ambiguity here, unlike '=='.
36695
+ const template = this.component.filter.replace(/(~=\s*)(\{\{.*?\}\})/g, '$1"$2"');
36696
+ const filterStr = this.interpolate(template, { data: this.data });
36697
+
36698
+ const filterFn = filtrex.compileExpression(filterStr, {
36699
+ customProp: filtrex.useDotAccessOperatorAndOptionalChaining,
36700
+ extraFunctions: {
36701
+ equalsIgnoreCase: (a, b) => String(a).toLowerCase() === String(b).toLowerCase(),
36702
+ matchIgnoreCase: (value, pattern) => new RegExp(pattern, 'i').test(String(value)),
36703
+ },
33550
36704
  });
33551
36705
 
33552
- logger.debug(`[TF_SDK:FilteredMasterdata] Filtered items count: ${items.length}`);
36706
+
36707
+ items = items.filter((row) => filterFn({ data: row }));
33553
36708
  } catch (e) {
33554
- logger.warn('[TF_SDK:153] ⚠️ Filter error:', e);
36709
+ console.warn('[TF_SDK:153] ⚠️ Filter error:', e);
36710
+ return [];
33555
36711
  }
33556
36712
  }
33557
36713
  return items;
@@ -33867,6 +37023,7 @@ class SmartSelectComponent extends SmartSelectField {
33867
37023
  searchEnabled: useSearch,
33868
37024
  searchChoices: !this.component.searchField,
33869
37025
  searchFields: _.get(this, 'component.searchFields', ['label']),
37026
+ searchResultLimit: _.get(this, 'component.searchResultLimit', this.component.limit || 100),
33870
37027
  fuseOptions: this.component.useExactSearch ? Object.assign(fuseObj, commonFuseOptions) : Object.assign({},
33871
37028
  _.get(this, 'component.fuseOptions', {}),
33872
37029
  Object.assign(fuseObj1, commonFuseOptions)
@@ -34032,9 +37189,11 @@ class SmartSelectComponent extends SmartSelectField {
34032
37189
  }
34033
37190
  let that = this;
34034
37191
  this.addEventListener(this.choices.input.element, 'input', debounce(function (event) {
37192
+ logger.info(`[TF_SDK:INPUT] ⌨️ Choices input event triggered for '${that.key}'. Search input:`, event.target.value);
34035
37193
  that.isFromSearch = !!event.target.value;
34036
37194
  if ((that.component.dataSrc === 'masterdata') && that.component.masterdata) {
34037
37195
  if (event.target.value.length == 0) {
37196
+ logger.info(`[TF_SDK:INPUT] Search cleared for '${that.key}'`);
34038
37197
  that.triggerUpdate();
34039
37198
  that.searchDownloadedResources = [];
34040
37199
  that.component.totalSearchResults = [];
@@ -34043,20 +37202,60 @@ class SmartSelectComponent extends SmartSelectField {
34043
37202
 
34044
37203
  } else {
34045
37204
  let tempArray = [];
34046
- var tmplt = that.component.template;
34047
- var str1 = tmplt.substring(tmplt.lastIndexOf('.') + 1, tmplt.length);
34048
- var label = str1.substring(0, str1.indexOf('}'), str1.length);
34049
- label = label.trim();
37205
+ var tmplt = that.component.template || '';
37206
+ var lastDot = tmplt.lastIndexOf('.');
37207
+ var label = 'label';
37208
+ if (lastDot !== -1) {
37209
+ var str1 = tmplt.substring(lastDot + 1, tmplt.length);
37210
+ var braceIndex = str1.indexOf('}');
37211
+ if (braceIndex !== -1) {
37212
+ label = str1.substring(0, braceIndex).trim();
37213
+ }
37214
+ }
37215
+
37216
+ logger.info(`[TF_SDK:INPUT] Parsed label key: '${label}', labelProperty: '${that.component.labelProperty}', limit: ${that.component.limit}, uniqueOptions: ${that.component.uniqueOptions}`);
37217
+
34050
37218
  tempArray = that.component.masterdata.filter((value) => {
34051
- return value[label].toLowerCase().includes(event.target.value.toLowerCase())
34052
- })
37219
+ if (!value) return false;
37220
+ let valToSearch = undefined;
37221
+
37222
+ const candidateFields = [];
37223
+ if (that.component.labelProperty) candidateFields.push(that.component.labelProperty);
37224
+ if (label && !candidateFields.includes(label)) candidateFields.push(label);
37225
+
37226
+ // Common fallback fields to check if explicitly configured labelProperty/template fields are missing
37227
+ const commonFields = ['Name', 'label', 'value', 'text', 'title'];
37228
+ for (const f of commonFields) {
37229
+ if (!candidateFields.includes(f)) {
37230
+ candidateFields.push(f);
37231
+ }
37232
+ }
37233
+
37234
+ for (const field of candidateFields) {
37235
+ if (value[field] !== undefined && value[field] !== null) {
37236
+ valToSearch = value[field];
37237
+ break;
37238
+ }
37239
+ }
37240
+
37241
+ if (valToSearch === undefined || valToSearch === null) {
37242
+ return Object.values(value).some(val =>
37243
+ val && String(val).toLowerCase().includes(event.target.value.toLowerCase())
37244
+ );
37245
+ }
37246
+ return String(valToSearch).toLowerCase().includes(event.target.value.toLowerCase());
37247
+ });
37248
+
37249
+ logger.info(`[TF_SDK:INPUT] Found ${tempArray.length} items matching '${event.target.value}' out of ${that.component.masterdata.length}`);
34053
37250
 
34054
37251
  if (tempArray.length > that.component.limit) {
37252
+ logger.info(`[TF_SDK:INPUT] Found items count ${tempArray.length} exceeds limit ${that.component.limit}. Slicing.`);
34055
37253
  that.component.totalSearchResults = [];
34056
37254
  that.component.totalSearchResults = tempArray;
34057
37255
  let searchedData = that.component.totalSearchResults.slice(0, that.component.limit);
34058
37256
  that.setItems(searchedData);
34059
37257
  } else {
37258
+ logger.info(`[TF_SDK:INPUT] Setting items directly. Count: ${tempArray.length}`);
34060
37259
  that.setItems(tempArray);
34061
37260
  }
34062
37261
  }
@@ -34186,10 +37385,59 @@ class SmartSelectComponent extends SmartSelectField {
34186
37385
  });
34187
37386
 
34188
37387
  this.addEventListener(input, 'search', (event) => {
37388
+ logger.info(`[TF_SDK:SEARCH] 🔍 Choices search event triggered for '${this.key}'. Search input:`, event.detail.value);
34189
37389
  if ((this.component.dataSrc === 'masterdata') && this.component.masterdata) {
37390
+ var tmplt = this.component.template || '';
37391
+ var lastDot = tmplt.lastIndexOf('.');
37392
+ var parsedLabel = 'label';
37393
+ if (lastDot !== -1) {
37394
+ var str1 = tmplt.substring(lastDot + 1, tmplt.length);
37395
+ var braceIndex = str1.indexOf('}');
37396
+ if (braceIndex !== -1) {
37397
+ parsedLabel = str1.substring(0, braceIndex).trim();
37398
+ }
37399
+ }
37400
+ const searchFieldClean = this.component.searchField ? this.component.searchField.replace(/__regex$/, '') : '';
37401
+
37402
+ logger.info(`[TF_SDK:SEARCH] Configured searchField: '${this.component.searchField}', clean: '${searchFieldClean}', parsedLabel: '${parsedLabel}', limit: ${this.component.limit}, uniqueOptions: ${this.component.uniqueOptions}`);
37403
+
34190
37404
  this.searchDownloadedResources = this.filteredMasterdata.filter(data => {
34191
- return data[this.component.searchField].toLowerCase().includes(event.detail.value.toLowerCase())
34192
- })
37405
+ if (!data) return false;
37406
+ let valToSearch = undefined;
37407
+
37408
+ const candidateFields = [];
37409
+ if (this.component.searchField) candidateFields.push(this.component.searchField);
37410
+ if (searchFieldClean && !candidateFields.includes(searchFieldClean)) candidateFields.push(searchFieldClean);
37411
+ if (this.component.labelProperty && !candidateFields.includes(this.component.labelProperty)) candidateFields.push(this.component.labelProperty);
37412
+ if (parsedLabel && !candidateFields.includes(parsedLabel)) candidateFields.push(parsedLabel);
37413
+
37414
+ // Common fallback fields to check if explicitly configured searchField/labelProperty/template fields are missing
37415
+ const commonFields = ['Name', 'label', 'value', 'text', 'title'];
37416
+ for (const f of commonFields) {
37417
+ if (!candidateFields.includes(f)) {
37418
+ candidateFields.push(f);
37419
+ }
37420
+ }
37421
+
37422
+ for (const field of candidateFields) {
37423
+ if (data[field] !== undefined && data[field] !== null) {
37424
+ valToSearch = data[field];
37425
+ break;
37426
+ }
37427
+ }
37428
+
37429
+ let matches = false;
37430
+ if (valToSearch === undefined || valToSearch === null) {
37431
+ matches = Object.values(data).some(val =>
37432
+ val && String(val).toLowerCase().includes(event.detail.value.toLowerCase())
37433
+ );
37434
+ } else {
37435
+ matches = String(valToSearch).toLowerCase().includes(event.detail.value.toLowerCase());
37436
+ }
37437
+ return matches;
37438
+ });
37439
+
37440
+ logger.info(`[TF_SDK:SEARCH] Found ${this.searchDownloadedResources.length} matching resources out of ${this.filteredMasterdata.length}`);
34193
37441
  this.isFromSearch = true;
34194
37442
  }
34195
37443
  });
@@ -34380,9 +37628,10 @@ class SmartSelectComponent extends SmartSelectField {
34380
37628
  }
34381
37629
 
34382
37630
  if (this.isFromSearch && this.searchDownloadedResources && this.searchDownloadedResources.length > 0) {
34383
- initialData = this.component.totalSearchResults.slice(this.searchDownloadedResources.length, this.searchDownloadedResources.length + this.component.limit)
37631
+ const totalResults = this.component.totalSearchResults || this.searchDownloadedResources || [];
37632
+ initialData = totalResults.slice(this.searchDownloadedResources.length, this.searchDownloadedResources.length + this.component.limit)
34384
37633
  dataObj = initialData;
34385
- dataObj.serverCount = this.component.totalSearchResults.length;
37634
+ dataObj.serverCount = totalResults.length;
34386
37635
  dataObj.skip = this.searchDownloadedResources.length + this.component.limit;
34387
37636
 
34388
37637
  } else {
@@ -42180,7 +45429,7 @@ initThemeHook();
42180
45429
  </div>
42181
45430
 
42182
45431
  <div id="sticky-footer">
42183
- <div class="build-version">SDK v2.0.74</div>
45432
+ <div class="build-version">SDK v2.0.77</div>
42184
45433
 
42185
45434
  <button class="footer-btn footer-btn-secondary" id="prevBtn" style="display:none" onclick="FormOnPrevious()">
42186
45435
  <i class="bi bi-chevron-left"></i> Previous