{"version":3,"file":"164.mass-edit.js","mappings":"sMAIO,MAAMA,qBAAqB,KAChC,WAAOC,EAAK,QAAEC,EAAO,YAAEC,IACrB,IAAIH,aAAa,CAAEE,UAASC,gBAAeC,QAAO,EACpD,CAEA,WAAAC,CAAYC,EAAU,CAAC,GACrBC,MAAM,CAAC,EAAGD,GACVE,KAAKN,QAAUI,EAAQJ,QACvBM,KAAKL,YAAcG,EAAQH,aAAe,eAC5C,CAEAM,uBAAyB,CACvBC,IAAK,OACLC,QAAS,CAAC,yBACVC,KAAM,CACJC,aAASC,EACTC,gBAAgB,EAChBC,eAAe,GAEjBC,OAAQ,CACNC,eAAgB,CAAC,iBACjBC,WAAW,EACXC,aAAa,GAEfC,SAAU,CACRC,MAAO,IACPC,OAAQ,KAEVC,QAAS,CAAC,GAIZf,aAAe,CACbgB,KAAM,CAAEC,SAAU,WAAW,qCAM/B,SAAIC,GACF,OAAOnB,KAAKL,WACd,CAGA,qBAAMyB,CAAgBtB,GACpB,MAAMuB,QAAgBtB,MAAMqB,gBAAgBtB,GAC5C,OAAOwB,OAAOC,OAAOF,EAAS,CAAE3B,QAASM,KAAKN,SAChD,EC/CK8B,eAAeC,EAAkB/B,SAChC,KAAcgC,UAAUhC,GAE9B,IAAIiC,EAAkB,EACtB,MAAMC,EAAS,SAAUC,EAAMC,EAAcC,EAAUC,GACrD,MAAMC,EAAuB,UAAjBH,GAA6C,SAAjBA,EAA0BD,EAAKK,SAASC,SAAM7B,EAChF8B,EAAOH,EAAMA,EAAII,MAAM,KAAKC,MAAQR,EACpCS,EAAS,IAAI,IAAO,CAAEH,OAAMH,MAAKH,eAAcD,KAAM,CAACA,GAAOW,KAAMb,IACzEY,EAAOE,SAAW,CAAEC,MAAO,CAAEC,KAAM,IACnCJ,EAAOK,OAAQ,EACfL,EAAOM,SAAU,EACbb,IACFO,EAAOO,UAAYC,QAAQC,MAAMC,UAAUjB,EAAac,WACxDP,EAAOW,YAAcH,QAAQC,MAAMC,UAAUjB,EAAakB,cAE5DnB,EAASoB,KAAKZ,GACdZ,GACF,EAEA,IAAK,MAAMY,KAAU7C,EAEnB,GADAiC,EAAkB,EACdY,EAAOV,KAAKuB,OAAS,GAAKb,EAAOc,UAAUD,OAAQ,CACrD,IAAIrB,EAAW,GACfQ,EAAOV,KAAKyB,QAASzB,IACdkB,QAAQC,MAAMO,QAAQ1B,IAAOD,EAAOC,EAAMU,EAAOT,aAAcC,EAAUQ,KAEhFA,EAAOc,UAAUC,QAASE,GAAM5B,EAAO4B,EAAE3B,KAAM2B,EAAE1B,aAAcC,IAE/D,IAAI0B,aAAa,CAAElB,SAAQR,aAAYnC,QAAO,EAChD,CAEJ,CAEA,MAAM6D,qBAAqBjE,aACzB,WAAAK,EAAY,OAAE0C,EAAM,SAAER,GAAa,CAAC,GAClChC,MAAM,CAAEL,QAASqC,EAAUpC,YAAa4C,EAAOH,KAAMsB,GAAI,iBAAmBnB,EAAOmB,KACnF1D,KAAKuC,OAASA,CAChB,CAGA,gBAAAoB,CAAiBnB,GACf,OAAQoB,MAAMC,QAAQrB,GAAQA,EAAO,CAACA,IAAOsB,IAAKtB,GAASxC,KAAKN,QAAQ8C,GAC1E,CAGA,sBAAAuB,GACE,MAAMjE,EAAUC,MAAMgE,yBAEhBC,EAAiB,CACrBC,OAAO,EACPC,iBAAiB,EACjBC,iBAAiB,EACjBC,cAAc,EACdC,oBAAoB,EACpBC,QAAQ,GAGV,OAAOxE,EAAQyE,OAAQC,GAAQR,EAAeQ,EAAId,IACpD,CAGA,kBAAAe,CAAmB5C,GAGjBA,EAAK6C,WAAY,EACjBC,SAASC,kBAAoB/C,EAAKgD,MAAMf,IAAKgB,GAAM9E,KAAKN,QAAQoF,GAClE,E","sources":["webpack://multi-token-edit/./multi-token-edit/scripts/presets/browser/dialog/dialogApp.js","webpack://multi-token-edit/./multi-token-edit/scripts/presets/browser/dialog/expandApp.js"],"sourcesContent":["import { MODULE_ID } from '../../../constants.js';\r\nimport { PresetContainerV2 } from '../../containerAppV2.js';\r\n\r\n// A simple app to display provided presets\r\nexport class PresetDialog extends PresetContainerV2 {\r\n  static open({ presets, windowTitle }) {\r\n    new PresetDialog({ presets, windowTitle }).render(true);\r\n  }\r\n\r\n  constructor(options = {}) {\r\n    super({}, options);\r\n    this.presets = options.presets;\r\n    this.windowTitle = options.windowTitle ?? 'Preset Dialog';\r\n  }\r\n\r\n  static DEFAULT_OPTIONS = {\r\n    tag: 'form',\r\n    classes: ['mass-edit-window-fill'],\r\n    form: {\r\n      handler: undefined,\r\n      submitOnChange: false,\r\n      closeOnSubmit: false,\r\n    },\r\n    window: {\r\n      contentClasses: ['standard-form'],\r\n      resizable: true,\r\n      minimizable: true,\r\n    },\r\n    position: {\r\n      width: 500,\r\n      height: 500,\r\n    },\r\n    actions: {},\r\n  };\r\n\r\n  /** @override */\r\n  static PARTS = {\r\n    main: { template: `modules/${MODULE_ID}/templates/preset/dialog.hbs` },\r\n  };\r\n\r\n  /* -------------------------------------------- */\r\n\r\n  /** @override */\r\n  get title() {\r\n    return this.windowTitle;\r\n  }\r\n\r\n  /** @override */\r\n  async _prepareContext(options) {\r\n    const context = await super._prepareContext(options);\r\n    return Object.assign(context, { presets: this.presets });\r\n  }\r\n}\r\n","import { PresetStorage } from '../../collection.js';\r\nimport { Preset } from '../../preset.js';\r\nimport { PresetDialog } from './dialogApp.js';\r\n\r\nexport async function openExpandPresets(presets) {\r\n  await PresetStorage.batchLoad(presets);\r\n\r\n  let incrementalUUID = 0;\r\n  const expand = function (data, documentName, expanded, parentPreset) {\r\n    const img = documentName === 'Token' || documentName === 'Tile' ? data.texture?.src : undefined;\r\n    const name = img ? img.split('/').pop() : documentName;\r\n    const preset = new Preset({ name, img, documentName, data: [data], uuid: incrementalUUID });\r\n    preset.document = { pages: { size: 0 } }; // TODO: this is a hack to prevent preset from loading and throwing an error\r\n    preset._temp = true;\r\n    preset._loaded = true;\r\n    if (parentPreset) {\r\n      preset.randomize = foundry.utils.deepClone(parentPreset.randomize);\r\n      preset.addSubtract = foundry.utils.deepClone(parentPreset.addSubtract);\r\n    }\r\n    expanded.push(preset);\r\n    incrementalUUID++;\r\n  };\r\n\r\n  for (const preset of presets) {\r\n    incrementalUUID = 0;\r\n    if (preset.data.length > 1 || preset.attached?.length) {\r\n      let expanded = [];\r\n      preset.data.forEach((data) => {\r\n        if (!foundry.utils.isEmpty(data)) expand(data, preset.documentName, expanded, preset);\r\n      });\r\n      preset.attached?.forEach((d) => expand(d.data, d.documentName, expanded));\r\n\r\n      new ExpandDialog({ preset, expanded }).render(true);\r\n    }\r\n  }\r\n}\r\n\r\nclass ExpandDialog extends PresetDialog {\r\n  constructor({ preset, expanded } = {}) {\r\n    super({ presets: expanded, windowTitle: preset.name, id: 'expand-dialog-' + preset.id });\r\n    this.preset = preset;\r\n  }\r\n\r\n  /** @override */\r\n  _retrievePresets(uuid) {\r\n    return (Array.isArray(uuid) ? uuid : [uuid]).map((uuid) => this.presets[uuid]);\r\n  }\r\n\r\n  /** @override */\r\n  _getItemContextOptions() {\r\n    const options = super._getItemContextOptions();\r\n\r\n    const allowedOptions = {\r\n      brush: true,\r\n      applyToSelected: true,\r\n      copyToClipboard: true,\r\n      exportAsJson: true,\r\n      exportToCompendium: true,\r\n      delete: true,\r\n    };\r\n\r\n    return options.filter((opt) => allowedOptions[opt.id]);\r\n  }\r\n\r\n  /** @override */\r\n  _onSetDragDropData(data) {\r\n    // Presets handled by ExpandDialog do not have a global UUID\r\n    // So Drag/Drop needs to be handled by passing the references to presets directly\r\n    data.transient = true;\r\n    MassEdit._transientPresets = data.uuids.map((i) => this.presets[i]);\r\n  }\r\n}\r\n"],"names":["PresetDialog","open","presets","windowTitle","render","constructor","options","super","this","static","tag","classes","form","handler","undefined","submitOnChange","closeOnSubmit","window","contentClasses","resizable","minimizable","position","width","height","actions","main","template","title","_prepareContext","context","Object","assign","async","openExpandPresets","batchLoad","incrementalUUID","expand","data","documentName","expanded","parentPreset","img","texture","src","name","split","pop","preset","uuid","document","pages","size","_temp","_loaded","randomize","foundry","utils","deepClone","addSubtract","push","length","attached","forEach","isEmpty","d","ExpandDialog","id","_retrievePresets","Array","isArray","map","_getItemContextOptions","allowedOptions","brush","applyToSelected","copyToClipboard","exportAsJson","exportToCompendium","delete","filter","opt","_onSetDragDropData","transient","MassEdit","_transientPresets","uuids","i"],"sourceRoot":""}