refine-rails 2.11.8 → 2.11.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/refine-stimulus.esm.js +1 -1
  3. data/app/assets/javascripts/refine-stimulus.esm.js.map +1 -1
  4. data/app/assets/javascripts/refine-stimulus.js +1 -1
  5. data/app/assets/javascripts/refine-stimulus.js.map +1 -1
  6. data/app/assets/javascripts/refine-stimulus.modern.js +1 -1
  7. data/app/assets/javascripts/refine-stimulus.modern.js.map +1 -1
  8. data/app/assets/javascripts/refine-stimulus.umd.js +1 -1
  9. data/app/assets/javascripts/refine-stimulus.umd.js.map +1 -1
  10. data/app/assets/stylesheets/index.css +129 -7
  11. data/app/assets/stylesheets/index.tailwind.css +126 -7
  12. data/app/controllers/refine/advanced_inline/criteria_controller.rb +186 -0
  13. data/app/controllers/refine/advanced_inline/stored_filters_controller.rb +84 -0
  14. data/app/controllers/refine/inline/criteria_controller.rb +0 -8
  15. data/app/javascript/controllers/fields/shoelace/tab-group-controller.js +85 -0
  16. data/app/javascript/controllers/index.js +5 -2
  17. data/app/javascript/controllers/refine/modal-controller.js +0 -1
  18. data/app/javascript/controllers/refine/popup-controller.js +1 -0
  19. data/app/models/refine/conditions/has_icon.rb +36 -0
  20. data/app/models/refine/filter.rb +1 -0
  21. data/app/views/refine/advanced_inline/criteria/_condition_list_item_card.html.erb +31 -0
  22. data/app/views/refine/advanced_inline/criteria/_form_fields.html.erb +121 -0
  23. data/app/views/refine/advanced_inline/criteria/create.turbo_stream.erb +19 -0
  24. data/app/views/refine/advanced_inline/criteria/edit.turbo_stream.erb +31 -0
  25. data/app/views/refine/advanced_inline/criteria/index.html.erb +90 -0
  26. data/app/views/refine/advanced_inline/criteria/new.turbo_stream.erb +31 -0
  27. data/app/views/refine/advanced_inline/filters/_add_first_condition_button.html.erb +19 -0
  28. data/app/views/refine/advanced_inline/filters/_and_button.html.erb +30 -0
  29. data/app/views/refine/advanced_inline/filters/_clear_button.html.erb +13 -0
  30. data/app/views/refine/advanced_inline/filters/_criterion.html.erb +22 -0
  31. data/app/views/refine/advanced_inline/filters/_group.html.erb +4 -0
  32. data/app/views/refine/advanced_inline/filters/_or_button.html.erb +29 -0
  33. data/app/views/refine/advanced_inline/filters/_or_separator.html.erb +12 -0
  34. data/app/views/refine/advanced_inline/filters/_popup.html.erb +26 -0
  35. data/app/views/refine/advanced_inline/filters/_save_button.html.erb +15 -0
  36. data/app/views/refine/advanced_inline/filters/_show.html.erb +38 -0
  37. data/app/views/refine/advanced_inline/inputs/_date_condition.html.erb +9 -0
  38. data/app/views/refine/advanced_inline/inputs/_date_condition_days.html.erb +18 -0
  39. data/app/views/refine/advanced_inline/inputs/_date_condition_range.html.erb +22 -0
  40. data/app/views/refine/advanced_inline/inputs/_date_condition_single.html.erb +9 -0
  41. data/app/views/refine/advanced_inline/inputs/_date_picker.html.erb +20 -0
  42. data/app/views/refine/advanced_inline/inputs/_numeric_condition.html.erb +23 -0
  43. data/app/views/refine/advanced_inline/inputs/_option_condition.html.erb +27 -0
  44. data/app/views/refine/advanced_inline/inputs/_text_condition.html.erb +8 -0
  45. data/app/views/refine/advanced_inline/stored_filters/find.turbo_stream.erb +19 -0
  46. data/app/views/refine/advanced_inline/stored_filters/index.html.erb +28 -0
  47. data/app/views/refine/advanced_inline/stored_filters/new.turbo_stream.erb +47 -0
  48. data/app/views/refine/inline/criteria/_condition_list_item.html.erb +0 -7
  49. data/app/views/refine/inline/filters/_add_first_condition_button.html.erb +3 -8
  50. data/app/views/refine/inline/filters/_and_button.html.erb +3 -8
  51. data/app/views/refine/inline/filters/_group.html.erb +1 -3
  52. data/app/views/refine/inline/filters/_or_button.html.erb +3 -8
  53. data/app/views/refine/inline/filters/_show.html.erb +4 -10
  54. data/config/locales/en/refine.en.yml +18 -0
  55. data/config/routes.rb +9 -1
  56. data/lib/refine/rails/version.rb +1 -1
  57. metadata +33 -5
  58. data/app/views/refine/inline/criteria/index_advanced.html.erb +0 -29
  59. data/app/views/refine/inline/filters/_modal_or_popup.html.erb +0 -35
  60. /data/app/views/refine/{inline → advanced_inline}/filters/_modal.html.erb +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"refine-stimulus.umd.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/refine/server-refresh-controller.js","../../javascript/controllers/refine/add-controller.js","../../javascript/controllers/refine/criterion-form-controller.js","../../javascript/controllers/refine/defaults-controller.js","../../javascript/controllers/refine/delete-controller.js","../../javascript/controllers/refine/filter-pills-controller.js","../../javascript/controllers/refine/popup-controller.js","../../javascript/controllers/refine/modal-controller.js","../../javascript/controllers/refine/search-filter-controller.js","../../javascript/refine/helpers/index.js","../../javascript/controllers/refine/state-controller.js","../../javascript/controllers/refine/stored-filter-controller.js","../../javascript/controllers/refine/submit-form-controller.js","../../javascript/controllers/refine/toggle-controller.js","../../javascript/controllers/refine/turbo-stream-form-controller.js","../../javascript/controllers/refine/turbo-stream-link-controller.js","../../javascript/controllers/refine/typeahead-list-controller.js","../../javascript/controllers/refine/update-controller.js","../../javascript/controllers/refine/date-controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\n\n// Base class for controllers that reload form content from the server\nexport default class extends Controller {\n connect() {\n this.state.finishUpdate()\n }\n\n get state() {\n let currentElement = this.element\n\n while(currentElement !== document.body) {\n if (currentElement.matches('[data-controller~=\"refine--state\"]'))\n return this.application.getControllerForElementAndIdentifier(currentElement, 'refine--state')\n else {\n currentElement = currentElement.parentNode\n }\n }\n\n return null\n }\n\n async refreshFromServer(options = {}) {\n const { includeErrors } = options\n this.state.startUpdate()\n const request = new FetchRequest(\n \"GET\",\n this.state.refreshUrlValue,\n {\n responseKind: \"turbo-stream\",\n query: {\n \"refine_filters_builder[filter_class]\": this.state.filterName,\n \"refine_filters_builder[blueprint_json]\": JSON.stringify(this.state.blueprint),\n \"refine_filters_builder[client_id]\": this.state.clientIdValue,\n include_errors: !!includeErrors\n }\n }\n )\n await request.perform()\n }\n}\n","import ServerRefreshController from './server-refresh-controller'\nimport { FetchRequest } from '@rails/request.js'\n\nexport default class extends ServerRefreshController {\n static values = {\n previousCriterionId: Number,\n }\n\n async criterion() {\n const isValid = await this.validateBlueprint()\n if (isValid) {\n this.state.addCriterion(this.previousCriterionIdValue)\n }\n this.refreshFromServer({includeErrors: !isValid})\n }\n\n async group() {\n const isValid = await this.validateBlueprint()\n if (isValid) {\n this.state.addGroup()\n }\n this.refreshFromServer({includeErrors: !isValid})\n }\n\n async validateBlueprint(blueprint) {\n const { state } = this\n\n const request = new FetchRequest(\n \"GET\",\n this.state.validateBlueprintUrlValue,\n {\n query: {\n \"refine_filters_builder[filter_class]\": this.state.filterName,\n \"refine_filters_builder[blueprint_json]\": JSON.stringify(this.state.blueprint),\n \"refine_filters_builder[client_id]\": this.state.clientIdValue\n }\n }\n )\n const response = await request.perform()\n return response.ok\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\n/*\n This controller handles criteria forms\n (refine/inline/criteria/new|edit)\n*/\nexport default class extends Controller {\n static values = {\n url: String,\n formId: String\n }\n\n async refresh(_event) {\n // update the url with params from the form\n const formElement = document.getElementById(this.formIdValue)\n const formData = new FormData(formElement)\n\n const request = new FetchRequest(\n \"GET\",\n this.urlValue,\n {\n query: formData,\n responseKind: \"turbo-stream\"\n }\n )\n const response = await request.perform()\n }\n\n\n\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static values = {\n criterionId: Number,\n input: Object,\n };\n\n connect() {\n this.state = this.getStateController()\n\n this.state.updateInput(\n this.criterionIdValue,\n this.inputValue,\n );\n }\n\n getStateController() {\n let currentElement = this.element\n\n while(currentElement !== document.body) {\n const controller = this.application.getControllerForElementAndIdentifier(currentElement, 'refine--state')\n if (controller) {\n return controller\n } else {\n currentElement = currentElement.parentNode\n }\n }\n\n return null\n }\n}\n","import ServerRefreshController from './server-refresh-controller';\n\nexport default class extends ServerRefreshController {\n static values = {\n criterionId: Number,\n }\n\n criterion() {\n const { state, criterionIdValue } = this;\n state.deleteCriterion(criterionIdValue);\n this.refreshFromServer()\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\nexport default class extends Controller {\n static values = {\n submitUrl: String\n }\n\n connect() {\n const urlParams = new URLSearchParams(window.location.search)\n this.existingParams = urlParams\n this.existingParams.delete('stable_id')\n }\n\n delete(event) {\n const { criterionId } = event.currentTarget.dataset\n var index = parseInt(criterionId)\n this.stateController.deleteCriterion(index)\n this.reloadPage()\n }\n\n async reloadPage() {\n const {blueprint} = this.stateController\n const request = new FetchRequest(\n \"POST\",\n this.submitUrlValue,\n {\n responseKind: \"turbo-stream\",\n body: JSON.stringify({\n refine_filters_builder: {\n filter_class: this.stateController.filterName,\n blueprint_json: JSON.stringify(blueprint),\n client_id: this.stateController.clientIdValue\n }\n })\n }\n )\n await request.perform()\n }\n\n redirectToStableId(stableId) {\n const params = new URLSearchParams()\n if (stableId) {\n params.append('stable_id', stableId)\n }\n const allParams = new URLSearchParams({\n ...Object.fromEntries(this.existingParams),\n ...Object.fromEntries(params),\n }).toString()\n const url = `${window.location.pathname}?${allParams}`\n\n history.pushState({}, document.title, url)\n window.location.reload()\n }\n\n get stateController() {\n return this.element.refineStateController\n }\n\n get stabilizeFilterController() {\n return this.element.stabilizeFilterController\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { useClickOutside } from 'stimulus-use'\n\n// simple controller to hide/show the filter modal\nexport default class extends Controller {\n static targets = [\"frame\"]\n\n static values = {\n src: String,\n isOpen: {type: Boolean, default: false}\n }\n\n connect() {\n useClickOutside(this)\n this.boundHandleKeyUp = this.handleKeyUp.bind(this)\n document.addEventListener(\"keyup\", this.boundHandleKeyUp)\n }\n\n disconnect() {\n document.removeEventListener(\"keyup\", this.boundHandleKeyUp)\n }\n\n show(event) {\n event.preventDefault()\n this.frameTarget.src = this.srcValue;\n this.isOpenValue = true\n }\n\n hide(event) {\n if (this.isOpenValue) {\n event?.preventDefault()\n this.frameTarget.innerHTML = \"\";\n this.isOpenValue = false\n }\n }\n\n clickOutside(event) {\n this.hide(event)\n }\n\n handleKeyUp(event) {\n if (event.key === \"Escape\" || event.key === \"Esc\") {\n this.hide(event)\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { useClickOutside } from 'stimulus-use'\n\n// simple controller to hide/show the filter modal\nexport default class extends Controller {\n static targets = [\"frame\"]\n\n static values = {\n src: String,\n isOpen: {type: Boolean, default: false}\n }\n\n connect() {\n console.log(\"Connecting modal controller\")\n useClickOutside(this)\n }\n\n disconnect() {\n }\n\n open(event) {\n console.log(\"Opening modal!!!\", this.srcValue)\n event.preventDefault()\n this.frameTarget.src = this.srcValue;\n this.isOpenValue = true\n }\n\n close(event) {\n if (this.isOpenValue) {\n event?.preventDefault()\n this.frameTarget.innerHTML = \"\";\n this.isOpenValue = false\n }\n }\n\n clickOutside(event) {\n this.close(event)\n }\n\n\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\nexport default class extends Controller {\n static values = {\n submitUrl: String\n }\n\n\n search(event) {\n event.preventDefault()\n this.submitFilter()\n document.activeElement.blur()\n }\n\n async submitFilter() {\n const {blueprint} = this.stateController\n const request = new FetchRequest(\n \"POST\",\n this.submitUrlValue,\n {\n responseKind: \"turbo-stream\",\n body: JSON.stringify({\n refine_filters_builder: {\n filter_class: this.stateController.filterName,\n blueprint_json: JSON.stringify(blueprint),\n client_id: this.stateController.clientIdValue\n }\n })\n }\n )\n await request.perform()\n }\n\n get stateController() {\n return this\n .element\n .querySelector('[data-controller~=\"refine--state\"]')\n .refineStateController\n }\n\n loadResults({detail: {url}}) {\n console.log(\"filter submit success\")\n if (window.Turbo) {\n window.Turbo.visit(url)\n } else {\n window.location.href = url\n }\n }\n}\n","// Polyfill for custom events in IE9-11\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#polyfill\n;(function () {\n if (typeof window.CustomEvent === 'function') return false\n\n function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: undefined }\n var evt = document.createEvent('CustomEvent')\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n\n CustomEvent.prototype = window.Event.prototype\n\n window.CustomEvent = CustomEvent\n\n // eslint expects a return here\n return true\n})()\n\nexport const filterStabilizedEvent = (element, stableId, filterName) => {\n const event = new CustomEvent('filter-stabilized', {\n bubbles: true,\n cancelable: true,\n detail: {\n stableId,\n filterName,\n },\n })\n element.dispatchEvent(event)\n}\n\nexport const filterUnstableEvent = (blueprint) => {\n const event = new CustomEvent('filter-unstable', {\n bubbles: true,\n cancelable: true,\n detail: {\n blueprint,\n },\n })\n window.dispatchEvent(event)\n}\n\nexport const filterInvalidEvent = ({blueprint, errors}) => {\n const event = new CustomEvent('filter-invalid', {\n bubbles: true,\n cancelable: true,\n detail: {\n blueprint,\n errors,\n },\n })\n window.dispatchEvent(event)\n}\n\nexport const filterStoredEvent = (storedFilterId) => {\n const event = new CustomEvent('filter-stored', {\n bubbles: true,\n cancelable: true,\n detail: {\n storedFilterId,\n },\n })\n window.dispatchEvent(event)\n}\n\nexport const blueprintUpdatedEvent = (element, {blueprint, formId}) => {\n const event = new CustomEvent('blueprint-updated', {\n bubbles: true,\n cancelable: true,\n detail: {\n blueprint,\n formId\n },\n })\n element.dispatchEvent(event)\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { delegate, abnegate } from 'jquery-events-to-dom-events'\nimport { blueprintUpdatedEvent } from '../../refine/helpers'\nimport { isEqual } from 'lodash'\n\nconst criterion = (id, depth, condition) => {\n const component = condition?.component\n const meta = condition?.meta || { clauses: [], options: {}}\n const refinements = condition?.refinements || []\n const { clauses, options } = meta\n let selected\n if (component === 'option-condition') {\n selected = options[0] ? [options[0].id] : []\n } else {\n selected = undefined\n }\n // Set newInput based on component\n\n let newInput = {\n clause: clauses[0]?.id,\n selected: selected,\n }\n\n // If refinements are present, add to input array\n refinements.forEach((refinement) => {\n const { meta, component } = refinement\n const { clauses, options } = meta\n let selected\n if (component === 'option-condition') {\n selected = options[0] ? [options[0].id] : []\n } else {\n selected = undefined\n }\n newInput[refinement.id] = {\n clause: clauses[0].id,\n selected: selected,\n }\n })\n\n return {\n depth,\n type: 'criterion',\n condition_id: id,\n input: newInput,\n }\n}\n\nconst or = function (depth) {\n depth = depth === undefined ? 0 : depth\n return {\n depth,\n type: 'conjunction',\n word: 'or',\n }\n}\n\nconst and = function (depth) {\n depth = depth === undefined ? 1 : depth\n return {\n depth,\n type: 'conjunction',\n word: 'and',\n }\n}\nexport default class extends Controller {\n static values = {\n blueprint: Array,\n conditions: Array,\n className: String,\n refreshUrl: String,\n clientId: String,\n validateBlueprintUrl: String,\n defaultConditionId: String\n }\n static targets = ['loading']\n\n\n connect() {\n // for select2 jquery events and datepicker\n this.element.refineStateController = this\n this.changeDelegate = delegate('change', ['event', 'picker'])\n this.blueprint = this.blueprintValue\n this.conditions = this.conditionsValue\n this.filterName = this.classNameValue\n this.conditionsLookup = this.conditions.reduce((lookup, condition) => {\n lookup[condition.id] = condition\n return lookup\n }, {})\n this.loadingTimeout = null\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n }\n\n disconnect() {\n abnegate('change', this.changeDelegate)\n }\n\n startUpdate() {\n if (this.loadingTimeout) {\n window.clearTimeout(this.loadingTimeout)\n }\n // only show the loading overlay if it's taking a long time\n // to render the updates\n this.loadingTimeout = window.setTimeout(() => {\n this.loadingTarget.classList.remove('hidden')\n }, 1000)\n }\n\n finishUpdate() {\n if (this.loadingTimeout) {\n window.clearTimeout(this.loadingTimeout)\n }\n this.loadingTarget.classList.add('hidden')\n }\n\n conditionConfigFor(conditionId) {\n return this.conditionsLookup[conditionId]\n }\n\n addGroup() {\n const { blueprint, conditions } = this\n const condition = ( conditions.find(c => c.id == this.defaultConditionIdValue) || conditions[0] )\n const { meta } = condition\n\n if (this.blueprint.length > 0) {\n this.blueprint.push(or())\n }\n this.blueprint.push(criterion(condition.id, 1, condition))\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n }\n\n addCriterion(previousCriterionId) {\n const { blueprint, conditions } = this\n const condition = ( conditions.find(c => c.id == this.defaultConditionIdValue) || conditions[0] )\n const { meta } = condition\n blueprint.splice(previousCriterionId + 1, 0, and(), criterion(condition.id, 1, condition))\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n }\n\n deleteCriterion(criterionId) {\n /**\n To support 'groups' there is some complicated logic for deleting criterion.\n\n Imagine this simplified blueprint: [eq, and, sw, or, eq]\n\n User clicks to delete the last eq. We also have to delete the preceding or\n otherwise we're left with a hanging empty group\n\n What if the user deletes the sw? We have to clean up the preceding and.\n\n Imagine another scenario: [eq or sw and ew]\n Now we delete the first eq but this time we need to clean up the or.\n\n These conditionals cover these cases.\n **/\n const { blueprint } = this\n const previous = blueprint[criterionId - 1]\n const next = blueprint[criterionId + 1]\n\n const nextIsOr = next && next.word === 'or'\n const previousIsOr = previous && previous.word === 'or'\n\n const nextIsRightParen = nextIsOr || !next\n const previousIsLeftParen = previousIsOr || !previous\n\n const isFirstInGroup = previousIsLeftParen && !nextIsRightParen\n const isLastInGroup = previousIsLeftParen && nextIsRightParen\n const isLastCriterion = !previous && !next\n\n if (isLastCriterion) {\n this.blueprint = []\n } else if (isLastInGroup && previousIsOr) {\n blueprint.splice(criterionId - 1, 2)\n } else if (isLastInGroup && !previous) {\n blueprint.splice(criterionId, 2)\n } else if (isFirstInGroup) {\n blueprint.splice(criterionId, 2)\n } else {\n blueprint.splice(criterionId - 1, 2)\n }\n\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n }\n\n /*\n Updates a criterion in the blueprint\n Returns true if an update was actually performed, or false if no-op\n */\n replaceCriterion(criterionId, conditionId, condition) {\n const criterionRow = this.blueprint[criterionId]\n if (criterionRow.type !== 'criterion') {\n throw new Error(\n `You can't call updateConditionId on a non-criterion type. Trying to update ${JSON.stringify(criterion)}`\n )\n }\n const existingCriterion = this.blueprint[criterionId]\n const newCriterion = criterion(conditionId, criterionRow.depth, condition)\n if (isEqual(existingCriterion, newCriterion)) {\n return false\n } else {\n this.blueprint[criterionId] = newCriterion\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n return true\n }\n }\n\n updateInput(criterionId, input, inputId) {\n // Input id is an array of hash keys that define the path for this input such as [\"input\", \"date_refinement\"]\n const { blueprint } = this\n const criterion = blueprint[criterionId]\n inputId = inputId || 'input'\n const blueprintPath = inputId.split(', ')\n // If the inputId contains more than one element, add input at appropriate depth\n if (blueprintPath.length > 1) {\n criterion[blueprintPath[0]][blueprintPath[1]] = { ...criterion[blueprintPath[0]][blueprintPath[1]], ...input }\n } else {\n criterion[inputId] = { ...criterion[inputId], ...input }\n }\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n }\n\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { filterStoredEvent } from '../../refine/helpers'\n\nexport default class extends Controller {\n static targets = ['blueprintField']\n static values = { formId: String, stateDomId: String }\n\n connect() {\n const stateController = document\n .getElementById(this.stateDomIdValue)\n .refineStateController\n this.blueprintFieldTarget.value = JSON.stringify(stateController.blueprint)\n console.log(\"connect\", this.blueprintFieldTarget.value)\n }\n\n updateBlueprintField(event) {\n if (event.detail.formId != this.formIdValue) { return null }\n const { detail } = event\n const { blueprint } = detail\n this.blueprintFieldTarget.value = JSON.stringify(blueprint)\n console.log(\"update blueprint\", this.blueprintFieldTarget.value)\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n submit(event) {\n event.preventDefault()\n this.element.requestSubmit()\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\n// simple controller to hide/show the filter modal\nexport default class extends Controller {\n static targets = [\"content\"]\n\n toggle(_event) {\n this.contentTargets.forEach(node => {\n node.toggleAttribute(\"hidden\")\n })\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\n/*\n attach to a form element to have it submit to a turbo-stream endpoint\n\n <form action=\"/contacts\" data-controller=\"refine--turbo-stream-form\" data-action=\"submit->refine--turbo-stream-form#submit\">\n\n Turbo is supposed to handle this natively but we're seeing issues when the form is inside an iframe\n*/\nexport default class extends Controller {\n async submit(event) {\n event.preventDefault()\n const request = new FetchRequest(\n (this.element.method || \"POST\"),\n this.element.action,\n {\n responseKind: \"turbo-stream\",\n body: new FormData(this.element)\n }\n )\n await request.perform()\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\n/*\n attach to a link element to have it request turbo stream responses\n\n <a href=\"/contacts\" data-controller=\"refine--turbo-stream-link\" data-action=\"refine--turbo-stream-link#get\">Click me</a>\n\n Turbo is supposed to handle this natively with data-turbo-stream but we're\n seeing issues using that attribute inside iframes\n*/\nexport default class extends Controller {\n async visit(event) {\n event.preventDefault()\n const request = new FetchRequest(\n (this.element.dataset.turboMethod || \"GET\"),\n this.element.href,\n {\n responseKind: \"turbo-stream\",\n }\n )\n await request.perform()\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\n static targets = ['listItem', 'category', 'recommended']\n\n filter(event) {\n const query = event.currentTarget.value.toLowerCase()\n const visibleCategories = new Set()\n\n // hide / show listItem links that match the query and note which\n // categories should be visible\n this.listItemTargets.forEach(listItemNode => {\n const listItemName = listItemNode.dataset.listItemValue.toLowerCase()\n if (listItemName.includes(query)) {\n listItemNode.hidden = false\n visibleCategories.add(listItemNode.dataset.category)\n } else {\n listItemNode.hidden = true\n }\n })\n\n this.recommendedTargets.forEach(recommendedNode => {\n (query !== '' && visibleCategories.size === 0) ? recommendedNode.hidden = true : recommendedNode.hidden = false\n })\n\n // hide / show category headers that have visible listItems\n this.categoryTargets.forEach(categoryNode => {\n const categoryName = categoryNode.innerHTML\n if (visibleCategories.has(categoryName)) {\n categoryNode.hidden = false\n } else {\n categoryNode.hidden = true\n }\n })\n }\n}\n","import ServerRefreshController from './server-refresh-controller'\nimport { debounce } from 'lodash'\n\nexport default class extends ServerRefreshController {\n static values = {\n criterionId: Number,\n }\n\n initialize() {\n this.updateBlueprint = debounce((event, value, inputKey) => {\n this.value(event, value, inputKey)\n }, 500)\n }\n\n refinedFilter(event) {\n const { criterionIdValue, state } = this\n const dataset = event.target.dataset\n const inputId = dataset.inputId\n\n state.updateInput(\n criterionIdValue,\n {\n id: event.target.value,\n },\n inputId\n )\n this.refreshFromServer()\n }\n\n clause(event) {\n const { criterionIdValue, state } = this\n const dataset = event.target.dataset\n const inputId = dataset.inputId\n state.updateInput(\n criterionIdValue,\n {\n clause: event.target.value,\n },\n inputId\n )\n this.refreshFromServer()\n }\n\n selected(event) {\n const { target: select } = event\n const options = Array.prototype.slice.call(select.options)\n const selectedOptions = options.filter((option) => option.selected)\n const selected = selectedOptions.map((option) => option.value)\n this.value(event, selected, 'selected')\n }\n\n value(event, value, inputKey) {\n const { criterionIdValue, state } = this\n const dataset = event.target.dataset\n const inputId = dataset.inputId\n inputKey = inputKey || dataset.inputKey || 'value'\n value = value || event.target.value\n state.updateInput(\n criterionIdValue,\n {\n [inputKey]: value,\n },\n inputId\n )\n }\n\n condition(event) {\n const { criterionIdValue, state } = this\n const element = event.target\n let newConditionId = element.value\n if (!newConditionId) newConditionId = element.querySelector('select').value \n const config = this.state.conditionConfigFor(newConditionId)\n const updatePerformed = state.replaceCriterion(criterionIdValue, newConditionId, config)\n if (updatePerformed) {\n this.refreshFromServer()\n }\n }\n\n // Prevent form submission when hitting enter in a text box\n cancelEnter(event) {\n if (event.code === \"Enter\") {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport moment from 'moment'\nrequire('daterangepicker/daterangepicker.css')\n\n// requires jQuery, moment, might want to consider a vanilla JS alternative\nimport $ from 'jquery' // ensure jquery is loaded before daterangepicker\nimport 'daterangepicker'\n\nexport default class extends Controller {\n static targets = [\n 'field',\n 'hiddenField',\n 'clearButton',\n ]\n\n static values = {\n includeTime: Boolean,\n futureOnly: Boolean,\n drops: String,\n inline: Boolean,\n dateFormat: String,\n timeFormat: String,\n isAmPm: Boolean,\n locale: { type: String, default: 'en' },\n datetimeFormat: { type: String, default: 'MM/DD/YYYY h:mm A' },\n pickerLocale: { type: Object, default: {} },\n }\n\n connect() {\n this.initPluginInstance()\n }\n\n disconnect() {\n this.teardownPluginInstance()\n }\n\n clearDate(event) {\n // don't submit the form, unless it originated from the cancel/clear button\n event.preventDefault()\n\n window.$(this.fieldTarget).val('')\n\n this.dispatch('value-cleared')\n }\n\n applyDateToField(event, picker) {\n const format = this.includeTimeValue ? this.timeFormatValue : this.dateFormatValue\n\n const momentVal = picker\n ? moment(picker.startDate.toISOString())\n : moment(this.fieldTarget.value, 'YYYY-MM-DDTHH:mm').format('YYYY-MM-DDTHH:mm')\n const displayVal = momentVal.format(format)\n const dataVal = this.includeTimeValue ? momentVal.toISOString(true) : momentVal.format('YYYY-MM-DD')\n\n this.fieldTarget.value = displayVal\n this.hiddenFieldTarget.value = dataVal\n // bubble up a change event when the input is updated for other listeners\n window.$(this.fieldTarget).trigger('change', picker)\n\n // emit native change event\n this.hiddenFieldTarget.dispatchEvent(new Event('change', { detail: picker, bubbles: true }))\n }\n\n initPluginInstance() {\n const localeValues = this.pickerLocaleValue\n const isAmPm = this.isAmPmValue\n localeValues['format'] = this.includeTimeValue ? this.timeFormatValue : this.dateFormatValue\n\n window.$(this.fieldTarget).daterangepicker({\n singleDatePicker: true,\n timePicker: this.includeTimeValue,\n timePickerIncrement: 5,\n autoUpdateInput: false,\n autoApply: true,\n minDate: this.futureOnlyValue ? new Date() : false,\n locale: localeValues,\n parentEl: $(this.element),\n drops: this.dropsValue ? this.dropsValue : 'down',\n timePicker24Hour: !isAmPm,\n })\n\n window.$(this.fieldTarget).on('apply.daterangepicker', this.applyDateToField.bind(this))\n window.$(this.fieldTarget).on('cancel.daterangepicker', this.clearDate.bind(this))\n window.$(this.fieldTarget).on('showCalendar.daterangepicker', this.showCalendar.bind(this))\n\n this.pluginMainEl = this.fieldTarget\n this.plugin = $(this.pluginMainEl).data('daterangepicker') // weird\n\n if (this.inlineValue) {\n this.element.classList.add('date-input--inline')\n }\n\n }\n \n teardownPluginInstance() {\n if (this.plugin === undefined) {\n return\n }\n\n $(this.pluginMainEl).off('apply.daterangepicker')\n $(this.pluginMainEl).off('cancel.daterangepicker')\n $(this.pluginMainEl).off('showCalendar.daterangepicker')\n\n // revert to original markup, remove any event listeners\n this.plugin.remove()\n\n }\n\n showCalendar() {\n this.dispatch('show-calendar')\n }\n\n}\n","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport AddController from './refine/add-controller'\nimport CriterionFormController from './refine/criterion-form-controller'\nimport DefaultsController from './refine/defaults-controller'\nimport DeleteController from './refine/delete-controller'\nimport FilterPillsController from './refine/filter-pills-controller'\nimport PopupController from './refine/popup-controller'\nimport ModalController from './refine/modal-controller'\nimport SearchFilterController from './refine/search-filter-controller'\nimport ServerRefreshController from './refine/server-refresh-controller'\nimport StateController from './refine/state-controller'\nimport StoredFilterController from './refine/stored-filter-controller'\nimport SubmitForm from './refine/submit-form-controller'\nimport ToggleController from './refine/toggle-controller'\nimport TurboStreamFormController from './refine/turbo-stream-form-controller'\nimport TurboStreamLinkController from './refine/turbo-stream-link-controller'\nimport TypeaheadListController from './refine/typeahead-list-controller'\nimport UpdateController from './refine/update-controller'\nimport DateController from './refine/date-controller'\n\nexport const controllerDefinitions = [\n [AddController, 'refine/add-controller.js'],\n [CriterionFormController, 'refine/criterion-form-controller.js'],\n [DefaultsController, 'refine/defaults-controller.js'],\n [DeleteController, 'refine/delete-controller.js'],\n [FilterPillsController, 'refine/filter-pills-controller.js'],\n [PopupController, 'refine/popup-controller.js'],\n [ModalController, 'refine/modal-controller.js'],\n [SearchFilterController, 'refine/search-filter-controller.js'],\n [ServerRefreshController, 'refine/server-refresh-controller.js'],\n [StateController, 'refine/state-controller.js'],\n [StoredFilterController, 'refine/stored-filter-controller.js'],\n [SubmitForm, 'refine/submit-form-controller.js'],\n [ToggleController, 'refine/toggle-controller.js'],\n [TurboStreamFormController, 'refine/turbo-stream-form-controller.js'],\n [TurboStreamLinkController, 'refine/turbo-stream-link-controller.js'],\n [TypeaheadListController, './refine/typeahead-list-controller.js'],\n [UpdateController, 'refine/update-controller.js'],\n [DateController, 'refine/date-controller.js']\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n AddController,\n CriterionFormController,\n DefaultsController,\n DeleteController,\n FilterPillsController,\n PopupController,\n ModalController,\n SearchFilterController,\n ServerRefreshController,\n StateController,\n StoredFilterController,\n SubmitForm,\n ToggleController,\n TurboStreamFormController,\n TurboStreamLinkController,\n TypeaheadListController,\n UpdateController,\n DateController\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","Controller","connect","this","state","finishUpdate","currentElement","element","document","body","matches","application","getControllerForElementAndIdentifier","parentNode","refreshFromServer","options","_this","includeErrors","startUpdate","request","FetchRequest","refreshUrlValue","responseKind","query","filterName","JSON","stringify","blueprint","clientIdValue","include_errors","perform","then","e","Promise","reject","ServerRefreshController","criterion","resolve","validateBlueprint","isValid","addCriterion","previousCriterionIdValue","group","_this2","addGroup","_this3","validateBlueprintUrlValue","response","ok","values","previousCriterionId","Number","refresh","_event","formElement","getElementById","formIdValue","formData","FormData","urlValue","url","String","formId","getStateController","updateInput","criterionIdValue","inputValue","controller","criterionId","input","Object","deleteCriterion","urlParams","URLSearchParams","window","location","search","existingParams","delete","event","currentTarget","dataset","index","parseInt","stateController","reloadPage","submitUrlValue","refine_filters_builder","filter_class","blueprint_json","client_id","redirectToStableId","stableId","params","append","allParams","fromEntries","toString","pathname","history","pushState","title","reload","refineStateController","stabilizeFilterController","submitUrl","useClickOutside","boundHandleKeyUp","handleKeyUp","bind","addEventListener","disconnect","removeEventListener","show","preventDefault","frameTarget","src","srcValue","isOpenValue","hide","innerHTML","clickOutside","targets","isOpen","type","Boolean","default","console","log","open","close","_class","submitFilter","activeElement","blur","querySelector","loadResults","_ref","detail","Turbo","visit","href","CustomEvent","bubbles","cancelable","undefined","evt","createEvent","initCustomEvent","prototype","Event","blueprintUpdatedEvent","_ref2","dispatchEvent","id","depth","condition","_clauses$","component","meta","clauses","refinements","selected","newInput","clause","forEach","refinement","condition_id","changeDelegate","delegate","blueprintValue","conditions","conditionsValue","classNameValue","conditionsLookup","reduce","lookup","loadingTimeout","abnegate","clearTimeout","setTimeout","loadingTarget","classList","remove","add","conditionConfigFor","conditionId","find","c","defaultConditionIdValue","length","push","word","splice","previous","next","previousIsOr","nextIsRightParen","previousIsLeftParen","isLastInGroup","replaceCriterion","criterionRow","Error","existingCriterion","newCriterion","isEqual","inputId","blueprintPath","split","Array","className","refreshUrl","clientId","validateBlueprintUrl","defaultConditionId","stateDomIdValue","blueprintFieldTarget","value","updateBlueprintField","stateDomId","submit","requestSubmit","toggle","contentTargets","node","toggleAttribute","TurboStreamFormController","method","action","turboMethod","filter","toLowerCase","visibleCategories","Set","listItemTargets","listItemNode","listItemValue","includes","hidden","category","recommendedTargets","recommendedNode","size","categoryTargets","categoryNode","has","initialize","updateBlueprint","debounce","inputKey","refinedFilter","target","select","slice","call","option","map","newConditionId","config","cancelEnter","code","stopPropagation","require","initPluginInstance","teardownPluginInstance","clearDate","$","fieldTarget","val","dispatch","applyDateToField","picker","format","includeTimeValue","timeFormatValue","dateFormatValue","momentVal","moment","startDate","toISOString","displayVal","dataVal","hiddenFieldTarget","trigger","localeValues","pickerLocaleValue","isAmPm","isAmPmValue","daterangepicker","singleDatePicker","timePicker","timePickerIncrement","autoUpdateInput","autoApply","minDate","futureOnlyValue","Date","locale","parentEl","drops","dropsValue","timePicker24Hour","on","showCalendar","pluginMainEl","plugin","data","inlineValue","off","includeTime","futureOnly","inline","dateFormat","timeFormat","datetimeFormat","pickerLocale","controllerDefinitions","AddController","CriterionFormController","DefaultsController","DeleteController","FilterPillsController","PopupController","ModalController","SearchFilterController","StateController","StoredFilterController","SubmitForm","ToggleController","TurboStreamLinkController","TypeaheadListController","UpdateController","DateController","d","identifier","controllerConstructor"],"mappings":"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"}
1
+ {"version":3,"file":"refine-stimulus.umd.js","sources":["../../../node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","../../javascript/controllers/refine/server-refresh-controller.js","../../javascript/controllers/refine/add-controller.js","../../javascript/controllers/refine/criterion-form-controller.js","../../javascript/controllers/refine/defaults-controller.js","../../javascript/controllers/refine/delete-controller.js","../../javascript/controllers/refine/filter-pills-controller.js","../../javascript/controllers/refine/popup-controller.js","../../javascript/controllers/refine/modal-controller.js","../../javascript/controllers/refine/search-filter-controller.js","../../javascript/refine/helpers/index.js","../../javascript/controllers/refine/state-controller.js","../../javascript/controllers/refine/stored-filter-controller.js","../../javascript/controllers/refine/submit-form-controller.js","../../javascript/controllers/refine/toggle-controller.js","../../javascript/controllers/refine/turbo-stream-form-controller.js","../../javascript/controllers/refine/turbo-stream-link-controller.js","../../javascript/controllers/refine/typeahead-list-controller.js","../../javascript/controllers/refine/update-controller.js","../../javascript/controllers/refine/date-controller.js","../../javascript/controllers/fields/shoelace/tab-group-controller.js","../../javascript/controllers/index.js"],"sourcesContent":["/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys()\n .map((key) => definitionForModuleWithContextAndKey(context, key))\n .filter((value) => value);\n}\nfunction definitionForModuleWithContextAndKey(context, key) {\n const identifier = identifierForContextKey(key);\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\nfunction definitionForModuleAndIdentifier(module, identifier) {\n const controllerConstructor = module.default;\n if (typeof controllerConstructor == \"function\") {\n return { identifier, controllerConstructor };\n }\n}\nfunction identifierForContextKey(key) {\n const logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\n\n// Base class for controllers that reload form content from the server\nexport default class extends Controller {\n connect() {\n this.state.finishUpdate()\n }\n\n get state() {\n let currentElement = this.element\n\n while(currentElement !== document.body) {\n if (currentElement.matches('[data-controller~=\"refine--state\"]'))\n return this.application.getControllerForElementAndIdentifier(currentElement, 'refine--state')\n else {\n currentElement = currentElement.parentNode\n }\n }\n\n return null\n }\n\n async refreshFromServer(options = {}) {\n const { includeErrors } = options\n this.state.startUpdate()\n const request = new FetchRequest(\n \"GET\",\n this.state.refreshUrlValue,\n {\n responseKind: \"turbo-stream\",\n query: {\n \"refine_filters_builder[filter_class]\": this.state.filterName,\n \"refine_filters_builder[blueprint_json]\": JSON.stringify(this.state.blueprint),\n \"refine_filters_builder[client_id]\": this.state.clientIdValue,\n include_errors: !!includeErrors\n }\n }\n )\n await request.perform()\n }\n}\n","import ServerRefreshController from './server-refresh-controller'\nimport { FetchRequest } from '@rails/request.js'\n\nexport default class extends ServerRefreshController {\n static values = {\n previousCriterionId: Number,\n }\n\n async criterion() {\n const isValid = await this.validateBlueprint()\n if (isValid) {\n this.state.addCriterion(this.previousCriterionIdValue)\n }\n this.refreshFromServer({includeErrors: !isValid})\n }\n\n async group() {\n const isValid = await this.validateBlueprint()\n if (isValid) {\n this.state.addGroup()\n }\n this.refreshFromServer({includeErrors: !isValid})\n }\n\n async validateBlueprint(blueprint) {\n const { state } = this\n\n const request = new FetchRequest(\n \"GET\",\n this.state.validateBlueprintUrlValue,\n {\n query: {\n \"refine_filters_builder[filter_class]\": this.state.filterName,\n \"refine_filters_builder[blueprint_json]\": JSON.stringify(this.state.blueprint),\n \"refine_filters_builder[client_id]\": this.state.clientIdValue\n }\n }\n )\n const response = await request.perform()\n return response.ok\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\n/*\n This controller handles criteria forms\n (refine/inline/criteria/new|edit)\n*/\nexport default class extends Controller {\n static values = {\n url: String,\n formId: String\n }\n\n async refresh(_event) {\n // update the url with params from the form\n const formElement = document.getElementById(this.formIdValue)\n const formData = new FormData(formElement)\n\n const request = new FetchRequest(\n \"GET\",\n this.urlValue,\n {\n query: formData,\n responseKind: \"turbo-stream\"\n }\n )\n const response = await request.perform()\n }\n\n\n\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static values = {\n criterionId: Number,\n input: Object,\n };\n\n connect() {\n this.state = this.getStateController()\n\n this.state.updateInput(\n this.criterionIdValue,\n this.inputValue,\n );\n }\n\n getStateController() {\n let currentElement = this.element\n\n while(currentElement !== document.body) {\n const controller = this.application.getControllerForElementAndIdentifier(currentElement, 'refine--state')\n if (controller) {\n return controller\n } else {\n currentElement = currentElement.parentNode\n }\n }\n\n return null\n }\n}\n","import ServerRefreshController from './server-refresh-controller';\n\nexport default class extends ServerRefreshController {\n static values = {\n criterionId: Number,\n }\n\n criterion() {\n const { state, criterionIdValue } = this;\n state.deleteCriterion(criterionIdValue);\n this.refreshFromServer()\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\nexport default class extends Controller {\n static values = {\n submitUrl: String\n }\n\n connect() {\n const urlParams = new URLSearchParams(window.location.search)\n this.existingParams = urlParams\n this.existingParams.delete('stable_id')\n }\n\n delete(event) {\n const { criterionId } = event.currentTarget.dataset\n var index = parseInt(criterionId)\n this.stateController.deleteCriterion(index)\n this.reloadPage()\n }\n\n async reloadPage() {\n const {blueprint} = this.stateController\n const request = new FetchRequest(\n \"POST\",\n this.submitUrlValue,\n {\n responseKind: \"turbo-stream\",\n body: JSON.stringify({\n refine_filters_builder: {\n filter_class: this.stateController.filterName,\n blueprint_json: JSON.stringify(blueprint),\n client_id: this.stateController.clientIdValue\n }\n })\n }\n )\n await request.perform()\n }\n\n redirectToStableId(stableId) {\n const params = new URLSearchParams()\n if (stableId) {\n params.append('stable_id', stableId)\n }\n const allParams = new URLSearchParams({\n ...Object.fromEntries(this.existingParams),\n ...Object.fromEntries(params),\n }).toString()\n const url = `${window.location.pathname}?${allParams}`\n\n history.pushState({}, document.title, url)\n window.location.reload()\n }\n\n get stateController() {\n return this.element.refineStateController\n }\n\n get stabilizeFilterController() {\n return this.element.stabilizeFilterController\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { useClickOutside } from 'stimulus-use'\n\n// simple controller to hide/show the filter modal\nexport default class extends Controller {\n static targets = [\"frame\"]\n\n static values = {\n src: String,\n isOpen: {type: Boolean, default: false}\n }\n\n connect() {\n useClickOutside(this)\n this.boundHandleKeyUp = this.handleKeyUp.bind(this)\n document.addEventListener(\"keyup\", this.boundHandleKeyUp)\n }\n\n disconnect() {\n document.removeEventListener(\"keyup\", this.boundHandleKeyUp)\n }\n\n show(event) {\n event.preventDefault()\n this.frameTarget.src = this.srcValue;\n this.isOpenValue = true\n }\n\n hide(event) {\n if (this.isOpenValue) {\n event?.preventDefault()\n event?.stopPropagation()\n this.frameTarget.innerHTML = \"\";\n this.isOpenValue = false\n }\n }\n\n clickOutside(event) {\n this.hide(event)\n }\n\n handleKeyUp(event) {\n if (event.key === \"Escape\" || event.key === \"Esc\") {\n this.hide(event)\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { useClickOutside } from 'stimulus-use'\n\n// simple controller to hide/show the filter modal\nexport default class extends Controller {\n static targets = [\"frame\"]\n\n static values = {\n src: String,\n isOpen: {type: Boolean, default: false}\n }\n\n connect() {\n useClickOutside(this)\n }\n\n disconnect() {\n }\n\n open(event) {\n console.log(\"Opening modal!!!\", this.srcValue)\n event.preventDefault()\n this.frameTarget.src = this.srcValue;\n this.isOpenValue = true\n }\n\n close(event) {\n if (this.isOpenValue) {\n event?.preventDefault()\n this.frameTarget.innerHTML = \"\";\n this.isOpenValue = false\n }\n }\n\n clickOutside(event) {\n this.close(event)\n }\n\n\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\nexport default class extends Controller {\n static values = {\n submitUrl: String\n }\n\n\n search(event) {\n event.preventDefault()\n this.submitFilter()\n document.activeElement.blur()\n }\n\n async submitFilter() {\n const {blueprint} = this.stateController\n const request = new FetchRequest(\n \"POST\",\n this.submitUrlValue,\n {\n responseKind: \"turbo-stream\",\n body: JSON.stringify({\n refine_filters_builder: {\n filter_class: this.stateController.filterName,\n blueprint_json: JSON.stringify(blueprint),\n client_id: this.stateController.clientIdValue\n }\n })\n }\n )\n await request.perform()\n }\n\n get stateController() {\n return this\n .element\n .querySelector('[data-controller~=\"refine--state\"]')\n .refineStateController\n }\n\n loadResults({detail: {url}}) {\n console.log(\"filter submit success\")\n if (window.Turbo) {\n window.Turbo.visit(url)\n } else {\n window.location.href = url\n }\n }\n}\n","// Polyfill for custom events in IE9-11\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#polyfill\n;(function () {\n if (typeof window.CustomEvent === 'function') return false\n\n function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: undefined }\n var evt = document.createEvent('CustomEvent')\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n\n CustomEvent.prototype = window.Event.prototype\n\n window.CustomEvent = CustomEvent\n\n // eslint expects a return here\n return true\n})()\n\nexport const filterStabilizedEvent = (element, stableId, filterName) => {\n const event = new CustomEvent('filter-stabilized', {\n bubbles: true,\n cancelable: true,\n detail: {\n stableId,\n filterName,\n },\n })\n element.dispatchEvent(event)\n}\n\nexport const filterUnstableEvent = (blueprint) => {\n const event = new CustomEvent('filter-unstable', {\n bubbles: true,\n cancelable: true,\n detail: {\n blueprint,\n },\n })\n window.dispatchEvent(event)\n}\n\nexport const filterInvalidEvent = ({blueprint, errors}) => {\n const event = new CustomEvent('filter-invalid', {\n bubbles: true,\n cancelable: true,\n detail: {\n blueprint,\n errors,\n },\n })\n window.dispatchEvent(event)\n}\n\nexport const filterStoredEvent = (storedFilterId) => {\n const event = new CustomEvent('filter-stored', {\n bubbles: true,\n cancelable: true,\n detail: {\n storedFilterId,\n },\n })\n window.dispatchEvent(event)\n}\n\nexport const blueprintUpdatedEvent = (element, {blueprint, formId}) => {\n const event = new CustomEvent('blueprint-updated', {\n bubbles: true,\n cancelable: true,\n detail: {\n blueprint,\n formId\n },\n })\n element.dispatchEvent(event)\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { delegate, abnegate } from 'jquery-events-to-dom-events'\nimport { blueprintUpdatedEvent } from '../../refine/helpers'\nimport { isEqual } from 'lodash'\n\nconst criterion = (id, depth, condition) => {\n const component = condition?.component\n const meta = condition?.meta || { clauses: [], options: {}}\n const refinements = condition?.refinements || []\n const { clauses, options } = meta\n let selected\n if (component === 'option-condition') {\n selected = options[0] ? [options[0].id] : []\n } else {\n selected = undefined\n }\n // Set newInput based on component\n\n let newInput = {\n clause: clauses[0]?.id,\n selected: selected,\n }\n\n // If refinements are present, add to input array\n refinements.forEach((refinement) => {\n const { meta, component } = refinement\n const { clauses, options } = meta\n let selected\n if (component === 'option-condition') {\n selected = options[0] ? [options[0].id] : []\n } else {\n selected = undefined\n }\n newInput[refinement.id] = {\n clause: clauses[0].id,\n selected: selected,\n }\n })\n\n return {\n depth,\n type: 'criterion',\n condition_id: id,\n input: newInput,\n }\n}\n\nconst or = function (depth) {\n depth = depth === undefined ? 0 : depth\n return {\n depth,\n type: 'conjunction',\n word: 'or',\n }\n}\n\nconst and = function (depth) {\n depth = depth === undefined ? 1 : depth\n return {\n depth,\n type: 'conjunction',\n word: 'and',\n }\n}\nexport default class extends Controller {\n static values = {\n blueprint: Array,\n conditions: Array,\n className: String,\n refreshUrl: String,\n clientId: String,\n validateBlueprintUrl: String,\n defaultConditionId: String\n }\n static targets = ['loading']\n\n\n connect() {\n // for select2 jquery events and datepicker\n this.element.refineStateController = this\n this.changeDelegate = delegate('change', ['event', 'picker'])\n this.blueprint = this.blueprintValue\n this.conditions = this.conditionsValue\n this.filterName = this.classNameValue\n this.conditionsLookup = this.conditions.reduce((lookup, condition) => {\n lookup[condition.id] = condition\n return lookup\n }, {})\n this.loadingTimeout = null\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n }\n\n disconnect() {\n abnegate('change', this.changeDelegate)\n }\n\n startUpdate() {\n if (this.loadingTimeout) {\n window.clearTimeout(this.loadingTimeout)\n }\n // only show the loading overlay if it's taking a long time\n // to render the updates\n this.loadingTimeout = window.setTimeout(() => {\n this.loadingTarget.classList.remove('hidden')\n }, 1000)\n }\n\n finishUpdate() {\n if (this.loadingTimeout) {\n window.clearTimeout(this.loadingTimeout)\n }\n this.loadingTarget.classList.add('hidden')\n }\n\n conditionConfigFor(conditionId) {\n return this.conditionsLookup[conditionId]\n }\n\n addGroup() {\n const { blueprint, conditions } = this\n const condition = ( conditions.find(c => c.id == this.defaultConditionIdValue) || conditions[0] )\n const { meta } = condition\n\n if (this.blueprint.length > 0) {\n this.blueprint.push(or())\n }\n this.blueprint.push(criterion(condition.id, 1, condition))\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n }\n\n addCriterion(previousCriterionId) {\n const { blueprint, conditions } = this\n const condition = ( conditions.find(c => c.id == this.defaultConditionIdValue) || conditions[0] )\n const { meta } = condition\n blueprint.splice(previousCriterionId + 1, 0, and(), criterion(condition.id, 1, condition))\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n }\n\n deleteCriterion(criterionId) {\n /**\n To support 'groups' there is some complicated logic for deleting criterion.\n\n Imagine this simplified blueprint: [eq, and, sw, or, eq]\n\n User clicks to delete the last eq. We also have to delete the preceding or\n otherwise we're left with a hanging empty group\n\n What if the user deletes the sw? We have to clean up the preceding and.\n\n Imagine another scenario: [eq or sw and ew]\n Now we delete the first eq but this time we need to clean up the or.\n\n These conditionals cover these cases.\n **/\n const { blueprint } = this\n const previous = blueprint[criterionId - 1]\n const next = blueprint[criterionId + 1]\n\n const nextIsOr = next && next.word === 'or'\n const previousIsOr = previous && previous.word === 'or'\n\n const nextIsRightParen = nextIsOr || !next\n const previousIsLeftParen = previousIsOr || !previous\n\n const isFirstInGroup = previousIsLeftParen && !nextIsRightParen\n const isLastInGroup = previousIsLeftParen && nextIsRightParen\n const isLastCriterion = !previous && !next\n\n if (isLastCriterion) {\n this.blueprint = []\n } else if (isLastInGroup && previousIsOr) {\n blueprint.splice(criterionId - 1, 2)\n } else if (isLastInGroup && !previous) {\n blueprint.splice(criterionId, 2)\n } else if (isFirstInGroup) {\n blueprint.splice(criterionId, 2)\n } else {\n blueprint.splice(criterionId - 1, 2)\n }\n\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n }\n\n /*\n Updates a criterion in the blueprint\n Returns true if an update was actually performed, or false if no-op\n */\n replaceCriterion(criterionId, conditionId, condition) {\n const criterionRow = this.blueprint[criterionId]\n if (criterionRow.type !== 'criterion') {\n throw new Error(\n `You can't call updateConditionId on a non-criterion type. Trying to update ${JSON.stringify(criterion)}`\n )\n }\n const existingCriterion = this.blueprint[criterionId]\n const newCriterion = criterion(conditionId, criterionRow.depth, condition)\n if (isEqual(existingCriterion, newCriterion)) {\n return false\n } else {\n this.blueprint[criterionId] = newCriterion\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n return true\n }\n }\n\n updateInput(criterionId, input, inputId) {\n // Input id is an array of hash keys that define the path for this input such as [\"input\", \"date_refinement\"]\n const { blueprint } = this\n const criterion = blueprint[criterionId]\n inputId = inputId || 'input'\n const blueprintPath = inputId.split(', ')\n // If the inputId contains more than one element, add input at appropriate depth\n if (blueprintPath.length > 1) {\n criterion[blueprintPath[0]][blueprintPath[1]] = { ...criterion[blueprintPath[0]][blueprintPath[1]], ...input }\n } else {\n criterion[inputId] = { ...criterion[inputId], ...input }\n }\n blueprintUpdatedEvent(this.element, {blueprint: this.blueprint, formId: this.formIdValue})\n }\n\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { filterStoredEvent } from '../../refine/helpers'\n\nexport default class extends Controller {\n static targets = ['blueprintField']\n static values = { formId: String, stateDomId: String }\n\n connect() {\n const stateController = document\n .getElementById(this.stateDomIdValue)\n .refineStateController\n this.blueprintFieldTarget.value = JSON.stringify(stateController.blueprint)\n console.log(\"connect\", this.blueprintFieldTarget.value)\n }\n\n updateBlueprintField(event) {\n if (event.detail.formId != this.formIdValue) { return null }\n const { detail } = event\n const { blueprint } = detail\n this.blueprintFieldTarget.value = JSON.stringify(blueprint)\n console.log(\"update blueprint\", this.blueprintFieldTarget.value)\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n submit(event) {\n event.preventDefault()\n this.element.requestSubmit()\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\n// simple controller to hide/show the filter modal\nexport default class extends Controller {\n static targets = [\"content\"]\n\n toggle(_event) {\n this.contentTargets.forEach(node => {\n node.toggleAttribute(\"hidden\")\n })\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\n/*\n attach to a form element to have it submit to a turbo-stream endpoint\n\n <form action=\"/contacts\" data-controller=\"refine--turbo-stream-form\" data-action=\"submit->refine--turbo-stream-form#submit\">\n\n Turbo is supposed to handle this natively but we're seeing issues when the form is inside an iframe\n*/\nexport default class extends Controller {\n async submit(event) {\n event.preventDefault()\n const request = new FetchRequest(\n (this.element.method || \"POST\"),\n this.element.action,\n {\n responseKind: \"turbo-stream\",\n body: new FormData(this.element)\n }\n )\n await request.perform()\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { FetchRequest } from '@rails/request.js'\n\n/*\n attach to a link element to have it request turbo stream responses\n\n <a href=\"/contacts\" data-controller=\"refine--turbo-stream-link\" data-action=\"refine--turbo-stream-link#get\">Click me</a>\n\n Turbo is supposed to handle this natively with data-turbo-stream but we're\n seeing issues using that attribute inside iframes\n*/\nexport default class extends Controller {\n async visit(event) {\n event.preventDefault()\n const request = new FetchRequest(\n (this.element.dataset.turboMethod || \"GET\"),\n this.element.href,\n {\n responseKind: \"turbo-stream\",\n }\n )\n await request.perform()\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\n static targets = ['listItem', 'category', 'recommended']\n\n filter(event) {\n const query = event.currentTarget.value.toLowerCase()\n const visibleCategories = new Set()\n\n // hide / show listItem links that match the query and note which\n // categories should be visible\n this.listItemTargets.forEach(listItemNode => {\n const listItemName = listItemNode.dataset.listItemValue.toLowerCase()\n if (listItemName.includes(query)) {\n listItemNode.hidden = false\n visibleCategories.add(listItemNode.dataset.category)\n } else {\n listItemNode.hidden = true\n }\n })\n\n this.recommendedTargets.forEach(recommendedNode => {\n (query !== '' && visibleCategories.size === 0) ? recommendedNode.hidden = true : recommendedNode.hidden = false\n })\n\n // hide / show category headers that have visible listItems\n this.categoryTargets.forEach(categoryNode => {\n const categoryName = categoryNode.innerHTML\n if (visibleCategories.has(categoryName)) {\n categoryNode.hidden = false\n } else {\n categoryNode.hidden = true\n }\n })\n }\n}\n","import ServerRefreshController from './server-refresh-controller'\nimport { debounce } from 'lodash'\n\nexport default class extends ServerRefreshController {\n static values = {\n criterionId: Number,\n }\n\n initialize() {\n this.updateBlueprint = debounce((event, value, inputKey) => {\n this.value(event, value, inputKey)\n }, 500)\n }\n\n refinedFilter(event) {\n const { criterionIdValue, state } = this\n const dataset = event.target.dataset\n const inputId = dataset.inputId\n\n state.updateInput(\n criterionIdValue,\n {\n id: event.target.value,\n },\n inputId\n )\n this.refreshFromServer()\n }\n\n clause(event) {\n const { criterionIdValue, state } = this\n const dataset = event.target.dataset\n const inputId = dataset.inputId\n state.updateInput(\n criterionIdValue,\n {\n clause: event.target.value,\n },\n inputId\n )\n this.refreshFromServer()\n }\n\n selected(event) {\n const { target: select } = event\n const options = Array.prototype.slice.call(select.options)\n const selectedOptions = options.filter((option) => option.selected)\n const selected = selectedOptions.map((option) => option.value)\n this.value(event, selected, 'selected')\n }\n\n value(event, value, inputKey) {\n const { criterionIdValue, state } = this\n const dataset = event.target.dataset\n const inputId = dataset.inputId\n inputKey = inputKey || dataset.inputKey || 'value'\n value = value || event.target.value\n state.updateInput(\n criterionIdValue,\n {\n [inputKey]: value,\n },\n inputId\n )\n }\n\n condition(event) {\n const { criterionIdValue, state } = this\n const element = event.target\n let newConditionId = element.value\n if (!newConditionId) newConditionId = element.querySelector('select').value \n const config = this.state.conditionConfigFor(newConditionId)\n const updatePerformed = state.replaceCriterion(criterionIdValue, newConditionId, config)\n if (updatePerformed) {\n this.refreshFromServer()\n }\n }\n\n // Prevent form submission when hitting enter in a text box\n cancelEnter(event) {\n if (event.code === \"Enter\") {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport moment from 'moment'\nrequire('daterangepicker/daterangepicker.css')\n\n// requires jQuery, moment, might want to consider a vanilla JS alternative\nimport $ from 'jquery' // ensure jquery is loaded before daterangepicker\nimport 'daterangepicker'\n\nexport default class extends Controller {\n static targets = [\n 'field',\n 'hiddenField',\n 'clearButton',\n ]\n\n static values = {\n includeTime: Boolean,\n futureOnly: Boolean,\n drops: String,\n inline: Boolean,\n dateFormat: String,\n timeFormat: String,\n isAmPm: Boolean,\n locale: { type: String, default: 'en' },\n datetimeFormat: { type: String, default: 'MM/DD/YYYY h:mm A' },\n pickerLocale: { type: Object, default: {} },\n }\n\n connect() {\n this.initPluginInstance()\n }\n\n disconnect() {\n this.teardownPluginInstance()\n }\n\n clearDate(event) {\n // don't submit the form, unless it originated from the cancel/clear button\n event.preventDefault()\n\n window.$(this.fieldTarget).val('')\n\n this.dispatch('value-cleared')\n }\n\n applyDateToField(event, picker) {\n const format = this.includeTimeValue ? this.timeFormatValue : this.dateFormatValue\n\n const momentVal = picker\n ? moment(picker.startDate.toISOString())\n : moment(this.fieldTarget.value, 'YYYY-MM-DDTHH:mm').format('YYYY-MM-DDTHH:mm')\n const displayVal = momentVal.format(format)\n const dataVal = this.includeTimeValue ? momentVal.toISOString(true) : momentVal.format('YYYY-MM-DD')\n\n this.fieldTarget.value = displayVal\n this.hiddenFieldTarget.value = dataVal\n // bubble up a change event when the input is updated for other listeners\n window.$(this.fieldTarget).trigger('change', picker)\n\n // emit native change event\n this.hiddenFieldTarget.dispatchEvent(new Event('change', { detail: picker, bubbles: true }))\n }\n\n initPluginInstance() {\n const localeValues = this.pickerLocaleValue\n const isAmPm = this.isAmPmValue\n localeValues['format'] = this.includeTimeValue ? this.timeFormatValue : this.dateFormatValue\n\n window.$(this.fieldTarget).daterangepicker({\n singleDatePicker: true,\n timePicker: this.includeTimeValue,\n timePickerIncrement: 5,\n autoUpdateInput: false,\n autoApply: true,\n minDate: this.futureOnlyValue ? new Date() : false,\n locale: localeValues,\n parentEl: $(this.element),\n drops: this.dropsValue ? this.dropsValue : 'down',\n timePicker24Hour: !isAmPm,\n })\n\n window.$(this.fieldTarget).on('apply.daterangepicker', this.applyDateToField.bind(this))\n window.$(this.fieldTarget).on('cancel.daterangepicker', this.clearDate.bind(this))\n window.$(this.fieldTarget).on('showCalendar.daterangepicker', this.showCalendar.bind(this))\n\n this.pluginMainEl = this.fieldTarget\n this.plugin = $(this.pluginMainEl).data('daterangepicker') // weird\n\n if (this.inlineValue) {\n this.element.classList.add('date-input--inline')\n }\n\n }\n \n teardownPluginInstance() {\n if (this.plugin === undefined) {\n return\n }\n\n $(this.pluginMainEl).off('apply.daterangepicker')\n $(this.pluginMainEl).off('cancel.daterangepicker')\n $(this.pluginMainEl).off('showCalendar.daterangepicker')\n\n // revert to original markup, remove any event listeners\n this.plugin.remove()\n\n }\n\n showCalendar() {\n this.dispatch('show-calendar')\n }\n\n}\n","// to be used with sl-tab-group\nimport { Controller } from \"@hotwired/stimulus\"\n\n// This controller is used to handle the tab group component\n// @see https://shoelace.style/components/tab-group\n// @param keepScrollPosition [Boolean] - If true, the scroll position will be kept when changing tabs\n// @usage <div data-controller=\"shoelace--tab-group\" data-shoelace--tab-group-keep-scroll-position-value=\"true\">\n\nexport default class extends Controller {\n static values = {\n keepScrollPosition: { type: Boolean, default: false },\n }\n\n connect() {\n this.currentScrollYPosition = 0\n this.navigateToTab = this.navigateToTab.bind(this)\n this.handleTabShow = this.handleTabShow.bind(this)\n\n this.navigateToTab()\n\n document.addEventListener('turbo:load', this.navigateToTab)\n this.element.addEventListener('sl-tab-show', this.handleTabShow)\n }\n\n disconnect() {\n document.removeEventListener('turbo:load', this.navigateToTab)\n this.element.removeEventListener('sl-tab-show', this.handleTabShow)\n }\n\n handleTabShow(event) {\n this.setLocationHash(event)\n\n if (this.keepScrollPositionValue) {\n this.handleTabChange()\n }\n }\n\n setLocationHash(event) {\n window.location.hash = event.detail.name\n }\n\n navigateToTab() {\n let hash = window.location.hash.toString()\n if (hash) {\n this.element.show(hash.slice(1))\n } else {\n /*\n * Turbo doesn't currently support hashes on redirects (see https://github.com/hotwired/turbo/issues/825)\n * so we've created a workaround. Pass `redirect_anchor` as a query param, and the component will convert\n * it to a hash and delete the query param. e.g. `some_url?redirect_anchor=store_upsells`\n */\n const params = new URLSearchParams(window.location.search)\n const redirectedHashParam = params.get('redirect_anchor')\n if (redirectedHashParam) {\n params.delete('redirect_anchor')\n let newParams = params.toString()\n window.history.replaceState(\n null,\n '',\n [window.location.pathname, newParams ? `?${newParams}` : '', '#', redirectedHashParam].join('')\n )\n }\n }\n }\n\n handleTabChange() {\n this.currentScrollYPosition = window.scrollY\n }\n\n /**\n * Programmatically reveal a sl-tab-panel via action params.\n * @see Shoelace sl-tab-group show() method\n * @see https://shoelace.style/components/tab-group?id=methods\n *\n * @param {Event} event\n * @param {string} event.params.showPanel - the name attribute of the sl-tab-panel to show\n * @example <button type='button' data-action=\"click->shoelace--tab-group#show\"\n * data-shoelace--tab-group-show-panel-param=\"mypanelname\">\n * @returns {void}\n */\n show(event) {\n const { showPanel } = event.params\n this.element.show(showPanel)\n }\n}\n","import { identifierForContextKey } from \"@hotwired/stimulus-webpack-helpers\"\n\nimport AddController from './refine/add-controller'\nimport CriterionFormController from './refine/criterion-form-controller'\nimport DefaultsController from './refine/defaults-controller'\nimport DeleteController from './refine/delete-controller'\nimport FilterPillsController from './refine/filter-pills-controller'\nimport PopupController from './refine/popup-controller'\nimport ModalController from './refine/modal-controller'\nimport SearchFilterController from './refine/search-filter-controller'\nimport ServerRefreshController from './refine/server-refresh-controller'\nimport StateController from './refine/state-controller'\nimport StoredFilterController from './refine/stored-filter-controller'\nimport SubmitForm from './refine/submit-form-controller'\nimport ToggleController from './refine/toggle-controller'\nimport TurboStreamFormController from './refine/turbo-stream-form-controller'\nimport TurboStreamLinkController from './refine/turbo-stream-link-controller'\nimport TypeaheadListController from './refine/typeahead-list-controller'\nimport UpdateController from './refine/update-controller'\nimport DateController from './refine/date-controller'\nimport TabGroupController from \"./fields/shoelace/tab-group-controller\"\n\nexport const controllerDefinitions = [\n [AddController, 'refine/add-controller.js'],\n [CriterionFormController, 'refine/criterion-form-controller.js'],\n [DefaultsController, 'refine/defaults-controller.js'],\n [DeleteController, 'refine/delete-controller.js'],\n [FilterPillsController, 'refine/filter-pills-controller.js'],\n [PopupController, 'refine/popup-controller.js'],\n [ModalController, 'refine/modal-controller.js'],\n [SearchFilterController, 'refine/search-filter-controller.js'],\n [ServerRefreshController, 'refine/server-refresh-controller.js'],\n [StateController, 'refine/state-controller.js'],\n [StoredFilterController, 'refine/stored-filter-controller.js'],\n [SubmitForm, 'refine/submit-form-controller.js'],\n [ToggleController, 'refine/toggle-controller.js'],\n [TurboStreamFormController, 'refine/turbo-stream-form-controller.js'],\n [TurboStreamLinkController, 'refine/turbo-stream-link-controller.js'],\n [TypeaheadListController, './refine/typeahead-list-controller.js'],\n [UpdateController, 'refine/update-controller.js'],\n [DateController, 'refine/date-controller.js'],\n [TabGroupController, 'fields/shoelace/tab-group-controller.js']\n].map(function(d) {\n const key = d[1]\n const controller = d[0]\n return {\n identifier: identifierForContextKey(key),\n controllerConstructor: controller\n }\n})\n\nexport {\n AddController,\n CriterionFormController,\n DefaultsController,\n DeleteController,\n FilterPillsController,\n PopupController,\n ModalController,\n SearchFilterController,\n ServerRefreshController,\n StateController,\n StoredFilterController,\n SubmitForm,\n ToggleController,\n TurboStreamFormController,\n TurboStreamLinkController,\n TypeaheadListController,\n UpdateController,\n DateController,\n TabGroupController\n}\n"],"names":["identifierForContextKey","key","logicalName","match","replace","Controller","connect","this","state","finishUpdate","currentElement","element","document","body","matches","application","getControllerForElementAndIdentifier","parentNode","refreshFromServer","options","_this","includeErrors","startUpdate","request","FetchRequest","refreshUrlValue","responseKind","query","filterName","JSON","stringify","blueprint","clientIdValue","include_errors","perform","then","e","Promise","reject","ServerRefreshController","criterion","resolve","validateBlueprint","isValid","addCriterion","previousCriterionIdValue","group","_this2","addGroup","_this3","validateBlueprintUrlValue","response","ok","values","previousCriterionId","Number","refresh","_event","formElement","getElementById","formIdValue","formData","FormData","urlValue","url","String","formId","getStateController","updateInput","criterionIdValue","inputValue","controller","criterionId","input","Object","deleteCriterion","urlParams","URLSearchParams","window","location","search","existingParams","delete","event","currentTarget","dataset","index","parseInt","stateController","reloadPage","submitUrlValue","refine_filters_builder","filter_class","blueprint_json","client_id","redirectToStableId","stableId","params","append","allParams","fromEntries","toString","pathname","history","pushState","title","reload","refineStateController","stabilizeFilterController","submitUrl","_class","useClickOutside","boundHandleKeyUp","handleKeyUp","bind","addEventListener","disconnect","removeEventListener","show","preventDefault","frameTarget","src","srcValue","isOpenValue","hide","stopPropagation","innerHTML","clickOutside","targets","isOpen","type","Boolean","default","open","console","log","close","submitFilter","activeElement","blur","querySelector","loadResults","_ref","detail","Turbo","visit","href","CustomEvent","bubbles","cancelable","undefined","evt","createEvent","initCustomEvent","prototype","Event","blueprintUpdatedEvent","_ref2","dispatchEvent","id","depth","condition","_clauses$","component","meta","clauses","refinements","selected","newInput","clause","forEach","refinement","condition_id","changeDelegate","delegate","blueprintValue","conditions","conditionsValue","classNameValue","conditionsLookup","reduce","lookup","loadingTimeout","abnegate","clearTimeout","setTimeout","loadingTarget","classList","remove","add","conditionConfigFor","conditionId","find","c","defaultConditionIdValue","length","push","word","splice","previous","next","previousIsOr","nextIsRightParen","previousIsLeftParen","isLastInGroup","replaceCriterion","criterionRow","Error","existingCriterion","newCriterion","isEqual","inputId","blueprintPath","split","Array","className","refreshUrl","clientId","validateBlueprintUrl","defaultConditionId","stateDomIdValue","blueprintFieldTarget","value","updateBlueprintField","stateDomId","submit","requestSubmit","toggle","contentTargets","node","toggleAttribute","TurboStreamFormController","method","action","turboMethod","filter","toLowerCase","visibleCategories","Set","listItemTargets","listItemNode","listItemValue","includes","hidden","category","recommendedTargets","recommendedNode","size","categoryTargets","categoryNode","has","initialize","updateBlueprint","debounce","inputKey","refinedFilter","target","select","slice","call","option","map","newConditionId","config","cancelEnter","code","require","initPluginInstance","teardownPluginInstance","clearDate","$","fieldTarget","val","dispatch","applyDateToField","picker","format","includeTimeValue","timeFormatValue","dateFormatValue","momentVal","moment","startDate","toISOString","displayVal","dataVal","hiddenFieldTarget","trigger","localeValues","pickerLocaleValue","isAmPm","isAmPmValue","daterangepicker","singleDatePicker","timePicker","timePickerIncrement","autoUpdateInput","autoApply","minDate","futureOnlyValue","Date","locale","parentEl","drops","dropsValue","timePicker24Hour","on","showCalendar","pluginMainEl","plugin","data","inlineValue","off","includeTime","futureOnly","inline","dateFormat","timeFormat","datetimeFormat","pickerLocale","currentScrollYPosition","navigateToTab","handleTabShow","setLocationHash","keepScrollPositionValue","handleTabChange","hash","name","redirectedHashParam","get","newParams","replaceState","join","scrollY","showPanel","keepScrollPosition","controllerDefinitions","AddController","CriterionFormController","DefaultsController","DeleteController","FilterPillsController","PopupController","ModalController","SearchFilterController","StateController","StoredFilterController","SubmitForm","ToggleController","TurboStreamLinkController","TypeaheadListController","UpdateController","DateController","TabGroupController","d","identifier","controllerConstructor"],"mappings":"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"}
@@ -1272,11 +1272,6 @@
1272
1272
  }
1273
1273
  }
1274
1274
 
1275
- .refine--group-join-stack {
1276
- width: 100%;
1277
- text-align: left;
1278
- }
1279
-
1280
1275
  .refine--group-join {
1281
1276
  &:hover {
1282
1277
  .refine--remove-group {
@@ -1765,7 +1760,8 @@ input.refine--text-condition-input:focus {
1765
1760
  /* TODO see if these are still needed */
1766
1761
  margin-top: 3px;
1767
1762
  width: 100vw;
1768
- padding: 0 0.5rem;
1763
+ padding-left: .5rem;
1764
+ padding-right: .5rem;
1769
1765
  max-width: -webkit-max-content;
1770
1766
  max-width: -moz-max-content;
1771
1767
  max-width: max-content;
@@ -1954,7 +1950,7 @@ input.refine--search-trigger[type="text"] {
1954
1950
 
1955
1951
  /* Shoelace Modal Styling */
1956
1952
 
1957
- .dialog-full::part(panel) {
1953
+ .refine--inline-modal-container .dialog-full::part(panel) {
1958
1954
  width: 100%;
1959
1955
  max-width: 100%;
1960
1956
  height: 100%;
@@ -1964,4 +1960,130 @@ input.refine--search-trigger[type="text"] {
1964
1960
  margin: 0;
1965
1961
  }
1966
1962
 
1963
+ .dialog__header-actions.refine--modal-header {
1964
+ display: flex;
1965
+ justify-content: space-between;
1966
+ align-items: center;
1967
+ padding: 6px 20px;
1968
+ }
1969
+
1970
+ .refine--header-title {
1971
+ font-size: 1rem;
1972
+ line-height: 1.5rem;
1973
+ font-weight: 600;
1974
+ --tw-text-opacity: 1;
1975
+ color: rgb(21 29 40 / var(--tw-text-opacity));
1976
+ }
1977
+
1978
+ .refine--modal-header-actions {
1979
+ display: flex;
1980
+ gap: 5px;
1981
+ }
1982
+
1983
+ .refine--modal-header-actions .dialog__close {
1984
+ display: flex;
1985
+ }
1986
+
1987
+ .refine--filter-condition-search {
1988
+ position: relative;
1989
+ margin-right: 10px;
1990
+ }
1991
+
1992
+ .refine--filter-condition-search .refine--search-icon {
1993
+ display: flex;
1994
+ padding-right: 8px;
1995
+ padding-left: 12px;
1996
+ align-items: center;
1997
+ left: 0;
1998
+ top: 0;
1999
+ bottom: 0;
2000
+ position: absolute;
2001
+ }
2002
+
2003
+ .refine--filter-condition-search input {
2004
+ display: block;
2005
+ height: 38px;
2006
+ width: 100%;
2007
+ border-radius: 7px;
2008
+ border-width: 1px;
2009
+ border-style: solid;
2010
+ --tw-border-opacity: 1;
2011
+ border-color: rgb(183 198 206 / var(--tw-border-opacity));
2012
+ padding-left: 32px;
2013
+ --tw-text-opacity: 1;
2014
+ color: rgb(21 29 40 / var(--tw-text-opacity));
2015
+ font-size: 0.875rem;
2016
+ line-height: 1.25rem;
2017
+ }
2018
+
2019
+ .refine--advanced-condition-select {
2020
+ padding-left: 24px;
2021
+ padding-right: 24px;
2022
+ background-color: #f9fafb;
2023
+ /* tailwind color bg-gray-50 */
2024
+ }
1967
2025
 
2026
+ .refine--advanced-condition-category-header {
2027
+ display: flex;
2028
+ padding: 10px 0 16px 0;
2029
+ font-size: 14px;
2030
+ font-weight: 600;
2031
+ color: #1a202e;
2032
+ /* tailwind color cool-gray-900 */
2033
+ }
2034
+
2035
+ .refine--advanced-condition-select-group {
2036
+ display: flex;
2037
+ flex-wrap: wrap;
2038
+ gap: 5px;
2039
+ padding-bottom: 32px
2040
+ }
2041
+
2042
+ .refine--condition-list-card {
2043
+ font-size: 14px;
2044
+ color: #27303f /* tailwind color cool-gray-800 */;
2045
+ display: flex;
2046
+ gap: 10px;
2047
+ align-items: center;
2048
+ padding: 10px;
2049
+ border: 1px solid #e5e7eb;
2050
+ border-radius: 6px;
2051
+ background-color: #fff;
2052
+ width: 244px;
2053
+ }
2054
+
2055
+ .refine--condition-list-icon-container {
2056
+ display: flex;
2057
+ border-radius: 6px;
2058
+ min-width: 28px;
2059
+ height: 28px;
2060
+ justify-items: center;
2061
+ align-items: center;
2062
+ padding: 0;
2063
+ text-align: center;
2064
+ }
2065
+
2066
+ .refine--condition-list-icon-container i {
2067
+ margin: 0 auto;
2068
+ font-size: 16px;
2069
+ }
2070
+
2071
+ .refine--inline-modal-container .refine--stored-filter-list-item{
2072
+ font-size: 14px;
2073
+ font-weight: 600;
2074
+ color: #1a202e;
2075
+ /* tailwind color cool-gray-900 */
2076
+ display: flex;
2077
+ gap: 10px;
2078
+ align-items: center;
2079
+ padding: 10px;
2080
+ border: 1px solid #e5e7eb;
2081
+ border-radius: 6px;
2082
+ background-color: #fff;
2083
+ }
2084
+
2085
+ .refine--inline-modal-container .refine--stored-filter-list-item:hover{
2086
+ background-color: #eee;
2087
+ color: #111;
2088
+ text-decoration: none;
2089
+ }
@@ -450,11 +450,6 @@
450
450
  }
451
451
  }
452
452
 
453
- .refine--group-join-stack {
454
- width: 100%;
455
- text-align: left;
456
- }
457
-
458
453
  .refine--group-join {
459
454
  &:hover {
460
455
  .refine--remove-group {
@@ -935,7 +930,8 @@ input.refine--text-condition-input:focus {
935
930
  /* TODO see if these are still needed */
936
931
  margin-top: 3px;
937
932
  width: 100vw;
938
- padding: 0 0.5rem;
933
+ padding-left: .5rem;
934
+ padding-right: .5rem;
939
935
  max-width: max-content;
940
936
  max-height: 66vh;
941
937
  overflow: visible;
@@ -1118,7 +1114,7 @@ input.refine--search-trigger[type="text"] {
1118
1114
 
1119
1115
  /* Shoelace Modal Styling */
1120
1116
 
1121
- .dialog-full::part(panel) {
1117
+ .refine--inline-modal-container .dialog-full::part(panel) {
1122
1118
  width: 100%;
1123
1119
  max-width: 100%;
1124
1120
  height: 100%;
@@ -1128,4 +1124,127 @@ input.refine--search-trigger[type="text"] {
1128
1124
  margin: 0;
1129
1125
  }
1130
1126
 
1127
+ .dialog__header-actions.refine--modal-header {
1128
+ display: flex;
1129
+ justify-content: space-between;
1130
+ align-items: center;
1131
+ padding: 6px 20px;
1132
+ }
1133
+
1134
+ .refine--header-title {
1135
+ font-size: 1rem;
1136
+ line-height: 1.5rem;
1137
+ font-weight: 600;
1138
+ --tw-text-opacity: 1;
1139
+ color: rgb(21 29 40 / var(--tw-text-opacity));
1140
+ }
1141
+
1142
+ .refine--modal-header-actions {
1143
+ display: flex;
1144
+ gap: 5px;
1145
+ }
1146
+
1147
+ .refine--modal-header-actions .dialog__close {
1148
+ display: flex;
1149
+ }
1150
+
1151
+ .refine--filter-condition-search {
1152
+ position: relative;
1153
+ margin-right: 10px;
1154
+ }
1155
+
1156
+ .refine--filter-condition-search .refine--search-icon {
1157
+ display: flex;
1158
+ padding-right: 8px;
1159
+ padding-left: 12px;
1160
+ align-items: center;
1161
+ left: 0;
1162
+ top: 0;
1163
+ bottom: 0;
1164
+ position: absolute;
1165
+ }
1166
+
1167
+ .refine--filter-condition-search input {
1168
+ display: block;
1169
+ height: 38px;
1170
+ width: 100%;
1171
+ border-radius: 7px;
1172
+ border-width: 1px;
1173
+ border-style: solid;
1174
+ --tw-border-opacity: 1;
1175
+ border-color: rgb(183 198 206 / var(--tw-border-opacity));
1176
+ padding-left: 32px;
1177
+ --tw-text-opacity: 1;
1178
+ color: rgb(21 29 40 / var(--tw-text-opacity));
1179
+ font-size: 0.875rem;
1180
+ line-height: 1.25rem;
1181
+ }
1182
+
1183
+ .refine--advanced-condition-select {
1184
+ padding-left: 24px;
1185
+ padding-right: 24px;
1186
+ background-color: #f9fafb; /* tailwind color bg-gray-50 */
1187
+ }
1188
+
1189
+ .refine--advanced-condition-category-header {
1190
+ display: flex;
1191
+ padding: 10px 0 16px 0;
1192
+ font-size: 14px;
1193
+ font-weight: 600;
1194
+ color: #1a202e; /* tailwind color cool-gray-900 */
1195
+ }
1196
+
1197
+ .refine--advanced-condition-select-group {
1198
+ display: flex;
1199
+ flex-wrap: wrap;
1200
+ gap: 5px;
1201
+ padding-bottom: 32px
1202
+ }
1203
+
1204
+ .refine--condition-list-card {
1205
+ font-size: 14px;
1206
+ color: #27303f /* tailwind color cool-gray-800 */;
1207
+ display: flex;
1208
+ gap: 10px;
1209
+ align-items: center;
1210
+ padding: 10px;
1211
+ border: 1px solid #e5e7eb;
1212
+ border-radius: 6px;
1213
+ background-color: #fff;
1214
+ width: 244px;
1215
+ }
1216
+
1217
+ .refine--condition-list-icon-container {
1218
+ display: flex;
1219
+ border-radius: 6px;
1220
+ min-width: 28px;
1221
+ height: 28px;
1222
+ justify-items: center;
1223
+ align-items: center;
1224
+ padding: 0;
1225
+ text-align: center;
1226
+ }
1227
+
1228
+ .refine--condition-list-icon-container i {
1229
+ margin: 0 auto;
1230
+ font-size: 16px;
1231
+ }
1131
1232
 
1233
+ .refine--inline-modal-container .refine--stored-filter-list-item{
1234
+ font-size: 14px;
1235
+ font-weight: 600;
1236
+ color: #1a202e; /* tailwind color cool-gray-900 */
1237
+ display: flex;
1238
+ gap: 10px;
1239
+ align-items: center;
1240
+ padding: 10px;
1241
+ border: 1px solid #e5e7eb;
1242
+ border-radius: 6px;
1243
+ background-color: #fff;
1244
+ }
1245
+
1246
+ .refine--inline-modal-container .refine--stored-filter-list-item:hover{
1247
+ background-color: #eee;
1248
+ color: #111;
1249
+ text-decoration: none;
1250
+ }