Brak opisu

acf-field-group.js 62KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261
  1. /******/ (function() { // webpackBootstrap
  2. /******/ var __webpack_modules__ = ({
  3. /***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-compatibility.js":
  4. /*!************************************************************************************!*\
  5. !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-compatibility.js ***!
  6. \************************************************************************************/
  7. /***/ (function() {
  8. (function ($, undefined) {
  9. var _acf = acf.getCompatibility(acf);
  10. /**
  11. * fieldGroupCompatibility
  12. *
  13. * Compatibility layer for extinct acf.field_group
  14. *
  15. * @date 15/12/17
  16. * @since 5.7.0
  17. *
  18. * @param void
  19. * @return void
  20. */
  21. _acf.field_group = {
  22. save_field: function ($field, type) {
  23. type = type !== undefined ? type : 'settings';
  24. acf.getFieldObject($field).save(type);
  25. },
  26. delete_field: function ($field, animate) {
  27. animate = animate !== undefined ? animate : true;
  28. acf.getFieldObject($field).delete({
  29. animate: animate
  30. });
  31. },
  32. update_field_meta: function ($field, name, value) {
  33. acf.getFieldObject($field).prop(name, value);
  34. },
  35. delete_field_meta: function ($field, name) {
  36. acf.getFieldObject($field).prop(name, null);
  37. }
  38. };
  39. /**
  40. * fieldGroupCompatibility.field_object
  41. *
  42. * Compatibility layer for extinct acf.field_group.field_object
  43. *
  44. * @date 15/12/17
  45. * @since 5.7.0
  46. *
  47. * @param void
  48. * @return void
  49. */
  50. _acf.field_group.field_object = acf.model.extend({
  51. // vars
  52. type: '',
  53. o: {},
  54. $field: null,
  55. $settings: null,
  56. tag: function (tag) {
  57. // vars
  58. var type = this.type; // explode, add 'field' and implode
  59. // - open => open_field
  60. // - change_type => change_field_type
  61. var tags = tag.split('_');
  62. tags.splice(1, 0, 'field');
  63. tag = tags.join('_'); // add type
  64. if (type) {
  65. tag += '/type=' + type;
  66. } // return
  67. return tag;
  68. },
  69. selector: function () {
  70. // vars
  71. var selector = '.acf-field-object';
  72. var type = this.type; // add type
  73. if (type) {
  74. selector += '-' + type;
  75. selector = acf.str_replace('_', '-', selector);
  76. } // return
  77. return selector;
  78. },
  79. _add_action: function (name, callback) {
  80. // vars
  81. var model = this; // add action
  82. acf.add_action(this.tag(name), function ($field) {
  83. // focus
  84. model.set('$field', $field); // callback
  85. model[callback].apply(model, arguments);
  86. });
  87. },
  88. _add_filter: function (name, callback) {
  89. // vars
  90. var model = this; // add action
  91. acf.add_filter(this.tag(name), function ($field) {
  92. // focus
  93. model.set('$field', $field); // callback
  94. model[callback].apply(model, arguments);
  95. });
  96. },
  97. _add_event: function (name, callback) {
  98. // vars
  99. var model = this;
  100. var event = name.substr(0, name.indexOf(' '));
  101. var selector = name.substr(name.indexOf(' ') + 1);
  102. var context = this.selector(); // add event
  103. $(document).on(event, context + ' ' + selector, function (e) {
  104. // append $el to event object
  105. e.$el = $(this);
  106. e.$field = e.$el.closest('.acf-field-object'); // focus
  107. model.set('$field', e.$field); // callback
  108. model[callback].apply(model, [e]);
  109. });
  110. },
  111. _set_$field: function () {
  112. // vars
  113. this.o = this.$field.data(); // els
  114. this.$settings = this.$field.find('> .settings > table > tbody'); // focus
  115. this.focus();
  116. },
  117. focus: function () {// do nothing
  118. },
  119. setting: function (name) {
  120. return this.$settings.find('> .acf-field-setting-' + name);
  121. }
  122. });
  123. /*
  124. * field
  125. *
  126. * This model fires actions and filters for registered fields
  127. *
  128. * @type function
  129. * @date 21/02/2014
  130. * @since 3.5.1
  131. *
  132. * @param n/a
  133. * @return n/a
  134. */
  135. var actionManager = new acf.Model({
  136. actions: {
  137. open_field_object: 'onOpenFieldObject',
  138. close_field_object: 'onCloseFieldObject',
  139. add_field_object: 'onAddFieldObject',
  140. duplicate_field_object: 'onDuplicateFieldObject',
  141. delete_field_object: 'onDeleteFieldObject',
  142. change_field_object_type: 'onChangeFieldObjectType',
  143. change_field_object_label: 'onChangeFieldObjectLabel',
  144. change_field_object_name: 'onChangeFieldObjectName',
  145. change_field_object_parent: 'onChangeFieldObjectParent',
  146. sortstop_field_object: 'onChangeFieldObjectParent'
  147. },
  148. onOpenFieldObject: function (field) {
  149. acf.doAction('open_field', field.$el);
  150. acf.doAction('open_field/type=' + field.get('type'), field.$el);
  151. acf.doAction('render_field_settings', field.$el);
  152. acf.doAction('render_field_settings/type=' + field.get('type'), field.$el);
  153. },
  154. onCloseFieldObject: function (field) {
  155. acf.doAction('close_field', field.$el);
  156. acf.doAction('close_field/type=' + field.get('type'), field.$el);
  157. },
  158. onAddFieldObject: function (field) {
  159. acf.doAction('add_field', field.$el);
  160. acf.doAction('add_field/type=' + field.get('type'), field.$el);
  161. },
  162. onDuplicateFieldObject: function (field) {
  163. acf.doAction('duplicate_field', field.$el);
  164. acf.doAction('duplicate_field/type=' + field.get('type'), field.$el);
  165. },
  166. onDeleteFieldObject: function (field) {
  167. acf.doAction('delete_field', field.$el);
  168. acf.doAction('delete_field/type=' + field.get('type'), field.$el);
  169. },
  170. onChangeFieldObjectType: function (field) {
  171. acf.doAction('change_field_type', field.$el);
  172. acf.doAction('change_field_type/type=' + field.get('type'), field.$el);
  173. acf.doAction('render_field_settings', field.$el);
  174. acf.doAction('render_field_settings/type=' + field.get('type'), field.$el);
  175. },
  176. onChangeFieldObjectLabel: function (field) {
  177. acf.doAction('change_field_label', field.$el);
  178. acf.doAction('change_field_label/type=' + field.get('type'), field.$el);
  179. },
  180. onChangeFieldObjectName: function (field) {
  181. acf.doAction('change_field_name', field.$el);
  182. acf.doAction('change_field_name/type=' + field.get('type'), field.$el);
  183. },
  184. onChangeFieldObjectParent: function (field) {
  185. acf.doAction('update_field_parent', field.$el);
  186. }
  187. });
  188. })(jQuery);
  189. /***/ }),
  190. /***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-conditions.js":
  191. /*!*********************************************************************************!*\
  192. !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-conditions.js ***!
  193. \*********************************************************************************/
  194. /***/ (function() {
  195. (function ($, undefined) {
  196. /**
  197. * ConditionalLogicFieldSetting
  198. *
  199. * description
  200. *
  201. * @date 3/2/18
  202. * @since 5.6.5
  203. *
  204. * @param type $var Description. Default.
  205. * @return type Description.
  206. */
  207. var ConditionalLogicFieldSetting = acf.FieldSetting.extend({
  208. type: '',
  209. name: 'conditional_logic',
  210. events: {
  211. 'change .conditions-toggle': 'onChangeToggle',
  212. 'click .add-conditional-group': 'onClickAddGroup',
  213. 'focus .condition-rule-field': 'onFocusField',
  214. 'change .condition-rule-field': 'onChangeField',
  215. 'change .condition-rule-operator': 'onChangeOperator',
  216. 'click .add-conditional-rule': 'onClickAdd',
  217. 'click .remove-conditional-rule': 'onClickRemove'
  218. },
  219. $rule: false,
  220. scope: function ($rule) {
  221. this.$rule = $rule;
  222. return this;
  223. },
  224. ruleData: function (name, value) {
  225. return this.$rule.data.apply(this.$rule, arguments);
  226. },
  227. $input: function (name) {
  228. return this.$rule.find('.condition-rule-' + name);
  229. },
  230. $td: function (name) {
  231. return this.$rule.find('td.' + name);
  232. },
  233. $toggle: function () {
  234. return this.$('.conditions-toggle');
  235. },
  236. $control: function () {
  237. return this.$('.rule-groups');
  238. },
  239. $groups: function () {
  240. return this.$('.rule-group');
  241. },
  242. $rules: function () {
  243. return this.$('.rule');
  244. },
  245. open: function () {
  246. var $div = this.$control();
  247. $div.show();
  248. acf.enable($div);
  249. },
  250. close: function () {
  251. var $div = this.$control();
  252. $div.hide();
  253. acf.disable($div);
  254. },
  255. render: function () {
  256. // show
  257. if (this.$toggle().prop('checked')) {
  258. this.renderRules();
  259. this.open(); // hide
  260. } else {
  261. this.close();
  262. }
  263. },
  264. renderRules: function () {
  265. // vars
  266. var self = this; // loop
  267. this.$rules().each(function () {
  268. self.renderRule($(this));
  269. });
  270. },
  271. renderRule: function ($rule) {
  272. this.scope($rule);
  273. this.renderField();
  274. this.renderOperator();
  275. this.renderValue();
  276. },
  277. renderField: function () {
  278. // vars
  279. var choices = [];
  280. var validFieldTypes = [];
  281. var cid = this.fieldObject.cid;
  282. var $select = this.$input('field'); // loop
  283. acf.getFieldObjects().map(function (fieldObject) {
  284. // vars
  285. var choice = {
  286. id: fieldObject.getKey(),
  287. text: fieldObject.getLabel()
  288. }; // bail early if is self
  289. if (fieldObject.cid === cid) {
  290. choice.text += acf.__('(this field)');
  291. choice.disabled = true;
  292. } // get selected field conditions
  293. var conditionTypes = acf.getConditionTypes({
  294. fieldType: fieldObject.getType()
  295. }); // bail early if no types
  296. if (!conditionTypes.length) {
  297. choice.disabled = true;
  298. } // calulate indents
  299. var indents = fieldObject.getParents().length;
  300. choice.text = '- '.repeat(indents) + choice.text; // append
  301. choices.push(choice);
  302. }); // allow for scenario where only one field exists
  303. if (!choices.length) {
  304. choices.push({
  305. id: '',
  306. text: acf.__('No toggle fields available')
  307. });
  308. } // render
  309. acf.renderSelect($select, choices); // set
  310. this.ruleData('field', $select.val());
  311. },
  312. renderOperator: function () {
  313. // bail early if no field selected
  314. if (!this.ruleData('field')) {
  315. return;
  316. } // vars
  317. var $select = this.$input('operator');
  318. var val = $select.val();
  319. var choices = []; // set saved value on first render
  320. // - this allows the 2nd render to correctly select an option
  321. if ($select.val() === null) {
  322. acf.renderSelect($select, [{
  323. id: this.ruleData('operator'),
  324. text: ''
  325. }]);
  326. } // get selected field
  327. var $field = acf.findFieldObject(this.ruleData('field'));
  328. var field = acf.getFieldObject($field); // get selected field conditions
  329. var conditionTypes = acf.getConditionTypes({
  330. fieldType: field.getType()
  331. }); // html
  332. conditionTypes.map(function (model) {
  333. choices.push({
  334. id: model.prototype.operator,
  335. text: model.prototype.label
  336. });
  337. }); // render
  338. acf.renderSelect($select, choices); // set
  339. this.ruleData('operator', $select.val());
  340. },
  341. renderValue: function () {
  342. // bail early if no field selected
  343. if (!this.ruleData('field') || !this.ruleData('operator')) {
  344. return;
  345. } // vars
  346. var $select = this.$input('value');
  347. var $td = this.$td('value');
  348. var val = $select.val(); // get selected field
  349. var $field = acf.findFieldObject(this.ruleData('field'));
  350. var field = acf.getFieldObject($field); // get selected field conditions
  351. var conditionTypes = acf.getConditionTypes({
  352. fieldType: field.getType(),
  353. operator: this.ruleData('operator')
  354. }); // html
  355. var conditionType = conditionTypes[0].prototype;
  356. var choices = conditionType.choices(field); // create html: array
  357. if (choices instanceof Array) {
  358. var $newSelect = $('<select></select>');
  359. acf.renderSelect($newSelect, choices); // create html: string (<input />)
  360. } else {
  361. var $newSelect = $(choices);
  362. } // append
  363. $select.detach();
  364. $td.html($newSelect); // copy attrs
  365. // timeout needed to avoid browser bug where "disabled" attribute is not applied
  366. setTimeout(function () {
  367. ['class', 'name', 'id'].map(function (attr) {
  368. $newSelect.attr(attr, $select.attr(attr));
  369. });
  370. }, 0); // select existing value (if not a disabled input)
  371. if (!$newSelect.prop('disabled')) {
  372. acf.val($newSelect, val, true);
  373. } // set
  374. this.ruleData('value', $newSelect.val());
  375. },
  376. onChangeToggle: function () {
  377. this.render();
  378. },
  379. onClickAddGroup: function (e, $el) {
  380. this.addGroup();
  381. },
  382. addGroup: function () {
  383. // vars
  384. var $group = this.$('.rule-group:last'); // duplicate
  385. var $group2 = acf.duplicate($group); // update h4
  386. $group2.find('h4').text(acf.__('or')); // remove all tr's except the first one
  387. $group2.find('tr').not(':first').remove(); // save field
  388. this.fieldObject.save();
  389. },
  390. onFocusField: function (e, $el) {
  391. this.renderField();
  392. },
  393. onChangeField: function (e, $el) {
  394. // scope
  395. this.scope($el.closest('.rule')); // set data
  396. this.ruleData('field', $el.val()); // render
  397. this.renderOperator();
  398. this.renderValue();
  399. },
  400. onChangeOperator: function (e, $el) {
  401. // scope
  402. this.scope($el.closest('.rule')); // set data
  403. this.ruleData('operator', $el.val()); // render
  404. this.renderValue();
  405. },
  406. onClickAdd: function (e, $el) {
  407. // duplciate
  408. var $rule = acf.duplicate($el.closest('.rule')); // render
  409. this.renderRule($rule);
  410. },
  411. onClickRemove: function (e, $el) {
  412. // vars
  413. var $rule = $el.closest('.rule'); // save field
  414. this.fieldObject.save(); // remove group
  415. if ($rule.siblings('.rule').length == 0) {
  416. $rule.closest('.rule-group').remove();
  417. } // remove
  418. $rule.remove();
  419. }
  420. });
  421. acf.registerFieldSetting(ConditionalLogicFieldSetting);
  422. /**
  423. * conditionalLogicHelper
  424. *
  425. * description
  426. *
  427. * @date 20/4/18
  428. * @since 5.6.9
  429. *
  430. * @param type $var Description. Default.
  431. * @return type Description.
  432. */
  433. var conditionalLogicHelper = new acf.Model({
  434. actions: {
  435. duplicate_field_objects: 'onDuplicateFieldObjects'
  436. },
  437. onDuplicateFieldObjects: function (children, newField, prevField) {
  438. // vars
  439. var data = {};
  440. var $selects = $(); // reference change in key
  441. children.map(function (child) {
  442. // store reference of changed key
  443. data[child.get('prevKey')] = child.get('key'); // append condition select
  444. $selects = $selects.add(child.$('.condition-rule-field'));
  445. }); // loop
  446. $selects.each(function () {
  447. // vars
  448. var $select = $(this);
  449. var val = $select.val(); // bail early if val is not a ref key
  450. if (!val || !data[val]) {
  451. return;
  452. } // modify selected option
  453. $select.find('option:selected').attr('value', data[val]); // set new val
  454. $select.val(data[val]);
  455. });
  456. }
  457. });
  458. })(jQuery);
  459. /***/ }),
  460. /***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-field.js":
  461. /*!****************************************************************************!*\
  462. !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-field.js ***!
  463. \****************************************************************************/
  464. /***/ (function() {
  465. (function ($, undefined) {
  466. acf.FieldObject = acf.Model.extend({
  467. // class used to avoid nested event triggers
  468. eventScope: '.acf-field-object',
  469. // events
  470. events: {
  471. 'click .edit-field': 'onClickEdit',
  472. 'click .delete-field': 'onClickDelete',
  473. 'click .duplicate-field': 'duplicate',
  474. 'click .move-field': 'move',
  475. 'change .field-type': 'onChangeType',
  476. 'change .field-required': 'onChangeRequired',
  477. 'blur .field-label': 'onChangeLabel',
  478. 'blur .field-name': 'onChangeName',
  479. change: 'onChange',
  480. changed: 'onChanged'
  481. },
  482. // data
  483. data: {
  484. // Similar to ID, but used for HTML puposes.
  485. // It is possbile for a new field to have an ID of 0, but an id of 'field_123' */
  486. id: 0,
  487. // The field key ('field_123')
  488. key: '',
  489. // The field type (text, image, etc)
  490. type: '' // The $post->ID of this field
  491. //ID: 0,
  492. // The field's parent
  493. //parent: 0,
  494. // The menu order
  495. //menu_order: 0
  496. },
  497. setup: function ($field) {
  498. // set $el
  499. this.$el = $field; // inherit $field data (id, key, type)
  500. this.inherit($field); // load additional props
  501. // - this won't trigger 'changed'
  502. this.prop('ID');
  503. this.prop('parent');
  504. this.prop('menu_order');
  505. },
  506. $input: function (name) {
  507. return $('#' + this.getInputId() + '-' + name);
  508. },
  509. $meta: function () {
  510. return this.$('.meta:first');
  511. },
  512. $handle: function () {
  513. return this.$('.handle:first');
  514. },
  515. $settings: function () {
  516. return this.$('.settings:first');
  517. },
  518. $setting: function (name) {
  519. return this.$('.acf-field-settings:first > .acf-field-setting-' + name);
  520. },
  521. getParent: function () {
  522. return acf.getFieldObjects({
  523. child: this.$el,
  524. limit: 1
  525. }).pop();
  526. },
  527. getParents: function () {
  528. return acf.getFieldObjects({
  529. child: this.$el
  530. });
  531. },
  532. getFields: function () {
  533. return acf.getFieldObjects({
  534. parent: this.$el
  535. });
  536. },
  537. getInputName: function () {
  538. return 'acf_fields[' + this.get('id') + ']';
  539. },
  540. getInputId: function () {
  541. return 'acf_fields-' + this.get('id');
  542. },
  543. newInput: function (name, value) {
  544. // vars
  545. var inputId = this.getInputId();
  546. var inputName = this.getInputName(); // append name
  547. if (name) {
  548. inputId += '-' + name;
  549. inputName += '[' + name + ']';
  550. } // create input (avoid HTML + JSON value issues)
  551. var $input = $('<input />').attr({
  552. id: inputId,
  553. name: inputName,
  554. value: value
  555. });
  556. this.$('> .meta').append($input); // return
  557. return $input;
  558. },
  559. getProp: function (name) {
  560. // check data
  561. if (this.has(name)) {
  562. return this.get(name);
  563. } // get input value
  564. var $input = this.$input(name);
  565. var value = $input.length ? $input.val() : null; // set data silently (cache)
  566. this.set(name, value, true); // return
  567. return value;
  568. },
  569. setProp: function (name, value) {
  570. // get input
  571. var $input = this.$input(name);
  572. var prevVal = $input.val(); // create if new
  573. if (!$input.length) {
  574. $input = this.newInput(name, value);
  575. } // remove
  576. if (value === null) {
  577. $input.remove(); // update
  578. } else {
  579. $input.val(value);
  580. } //console.log('setProp', name, value, this);
  581. // set data silently (cache)
  582. if (!this.has(name)) {
  583. //console.log('setting silently');
  584. this.set(name, value, true); // set data allowing 'change' event to fire
  585. } else {
  586. //console.log('setting loudly!');
  587. this.set(name, value);
  588. } // return
  589. return this;
  590. },
  591. prop: function (name, value) {
  592. if (value !== undefined) {
  593. return this.setProp(name, value);
  594. } else {
  595. return this.getProp(name);
  596. }
  597. },
  598. props: function (props) {
  599. Object.keys(props).map(function (key) {
  600. this.setProp(key, props[key]);
  601. }, this);
  602. },
  603. getLabel: function () {
  604. // get label with empty default
  605. var label = this.prop('label');
  606. if (label === '') {
  607. label = acf.__('(no label)');
  608. } // return
  609. return label;
  610. },
  611. getName: function () {
  612. return this.prop('name');
  613. },
  614. getType: function () {
  615. return this.prop('type');
  616. },
  617. getTypeLabel: function () {
  618. var type = this.prop('type');
  619. var types = acf.get('fieldTypes');
  620. return types[type] ? types[type].label : type;
  621. },
  622. getKey: function () {
  623. return this.prop('key');
  624. },
  625. initialize: function () {
  626. this.addProFields();
  627. },
  628. addProFields: function () {
  629. // Make sure we're only running this on free version.
  630. if (acf.data.fieldTypes.hasOwnProperty('clone')) {
  631. return;
  632. } // Make sure we haven't appended these fields before.
  633. var $fieldTypeSelect = $('.field-type').not('.acf-free-field-type'); // Append pro fields to "Layout" group.
  634. var $layoutGroup = $fieldTypeSelect.find('optgroup option[value="group"]').parent();
  635. $layoutGroup.append('<option value="null" disabled="disabled">' + acf.__('Repeater (Pro only)') + '</option>' + '<option value="null" disabled="disabled">' + acf.__('Flexible Content (Pro only)') + '</option>' + '<option value="null" disabled="disabled">' + acf.__('Clone (Pro only)') + '</option>'); // Add pro fields to "Content" group.
  636. var $contentGroup = $fieldTypeSelect.find('optgroup option[value="image"]').parent();
  637. $contentGroup.append('<option value="null" disabled="disabled">' + acf.__('Gallery (Pro only)') + '</option>');
  638. $fieldTypeSelect.addClass('acf-free-field-type');
  639. },
  640. render: function () {
  641. // vars
  642. var $handle = this.$('.handle:first');
  643. var menu_order = this.prop('menu_order');
  644. var label = this.getLabel();
  645. var name = this.prop('name');
  646. var type = this.getTypeLabel();
  647. var key = this.prop('key');
  648. var required = this.$input('required').prop('checked'); // update menu order
  649. $handle.find('.acf-icon').html(parseInt(menu_order) + 1); // update required
  650. if (required) {
  651. label += ' <span class="acf-required">*</span>';
  652. } // update label
  653. $handle.find('.li-field-label strong a').html(label); // update name
  654. $handle.find('.li-field-name').text(name); // update type
  655. $handle.find('.li-field-type').text(type); // update key
  656. $handle.find('.li-field-key').text(key); // action for 3rd party customization
  657. acf.doAction('render_field_object', this);
  658. },
  659. refresh: function () {
  660. acf.doAction('refresh_field_object', this);
  661. },
  662. isOpen: function () {
  663. return this.$el.hasClass('open');
  664. },
  665. onClickEdit: function (e) {
  666. this.isOpen() ? this.close() : this.open();
  667. },
  668. open: function () {
  669. // vars
  670. var $settings = this.$el.children('.settings'); // open
  671. $settings.slideDown();
  672. this.$el.addClass('open'); // action (open)
  673. acf.doAction('open_field_object', this);
  674. this.trigger('openFieldObject'); // action (show)
  675. acf.doAction('show', $settings);
  676. },
  677. close: function () {
  678. // vars
  679. var $settings = this.$el.children('.settings'); // close
  680. $settings.slideUp();
  681. this.$el.removeClass('open'); // action (close)
  682. acf.doAction('close_field_object', this);
  683. this.trigger('closeFieldObject'); // action (hide)
  684. acf.doAction('hide', $settings);
  685. },
  686. serialize: function () {
  687. return acf.serialize(this.$el, this.getInputName());
  688. },
  689. save: function (type) {
  690. // defaults
  691. type = type || 'settings'; // meta, settings
  692. // vars
  693. var save = this.getProp('save'); // bail if already saving settings
  694. if (save === 'settings') {
  695. return;
  696. } // prop
  697. this.setProp('save', type); // debug
  698. this.$el.attr('data-save', type); // action
  699. acf.doAction('save_field_object', this, type);
  700. },
  701. submit: function () {
  702. // vars
  703. var inputName = this.getInputName();
  704. var save = this.get('save'); // close
  705. if (this.isOpen()) {
  706. this.close();
  707. } // allow all inputs to save
  708. if (save == 'settings') {// do nothing
  709. // allow only meta inputs to save
  710. } else if (save == 'meta') {
  711. this.$('> .settings [name^="' + inputName + '"]').remove(); // prevent all inputs from saving
  712. } else {
  713. this.$('[name^="' + inputName + '"]').remove();
  714. } // action
  715. acf.doAction('submit_field_object', this);
  716. },
  717. onChange: function (e, $el) {
  718. // save settings
  719. this.save(); // action for 3rd party customization
  720. acf.doAction('change_field_object', this);
  721. },
  722. onChanged: function (e, $el, name, value) {
  723. // ignore 'save'
  724. if (name == 'save') {
  725. return;
  726. } // save meta
  727. if (['menu_order', 'parent'].indexOf(name) > -1) {
  728. this.save('meta'); // save field
  729. } else {
  730. this.save();
  731. } // render
  732. if (['menu_order', 'label', 'required', 'name', 'type', 'key'].indexOf(name) > -1) {
  733. this.render();
  734. } // action for 3rd party customization
  735. acf.doAction('change_field_object_' + name, this, value);
  736. },
  737. onChangeLabel: function (e, $el) {
  738. // set
  739. var label = $el.val();
  740. this.set('label', label); // render name
  741. if (this.prop('name') == '') {
  742. var name = acf.applyFilters('generate_field_object_name', acf.strSanitize(label), this);
  743. this.prop('name', name);
  744. }
  745. },
  746. onChangeName: function (e, $el) {
  747. // set
  748. var name = $el.val();
  749. this.set('name', name); // error
  750. if (name.substr(0, 6) === 'field_') {
  751. alert(acf.__('The string "field_" may not be used at the start of a field name'));
  752. }
  753. },
  754. onChangeRequired: function (e, $el) {
  755. // set
  756. var required = $el.prop('checked') ? 1 : 0;
  757. this.set('required', required);
  758. },
  759. delete: function (args) {
  760. // defaults
  761. args = acf.parseArgs(args, {
  762. animate: true
  763. }); // add to remove list
  764. var id = this.prop('ID');
  765. if (id) {
  766. var $input = $('#_acf_delete_fields');
  767. var newVal = $input.val() + '|' + id;
  768. $input.val(newVal);
  769. } // action
  770. acf.doAction('delete_field_object', this); // animate
  771. if (args.animate) {
  772. this.removeAnimate();
  773. } else {
  774. this.remove();
  775. }
  776. },
  777. onClickDelete: function (e, $el) {
  778. // Bypass confirmation when holding down "shift" key.
  779. if (e.shiftKey) {
  780. return this.delete();
  781. } // add class
  782. this.$el.addClass('-hover'); // add tooltip
  783. var tooltip = acf.newTooltip({
  784. confirmRemove: true,
  785. target: $el,
  786. context: this,
  787. confirm: function () {
  788. this.delete();
  789. },
  790. cancel: function () {
  791. this.$el.removeClass('-hover');
  792. }
  793. });
  794. },
  795. removeAnimate: function () {
  796. // vars
  797. var field = this;
  798. var $list = this.$el.parent();
  799. var $fields = acf.findFieldObjects({
  800. sibling: this.$el
  801. }); // remove
  802. acf.remove({
  803. target: this.$el,
  804. endHeight: $fields.length ? 0 : 50,
  805. complete: function () {
  806. field.remove();
  807. acf.doAction('removed_field_object', field, $list);
  808. }
  809. }); // action
  810. acf.doAction('remove_field_object', field, $list);
  811. },
  812. duplicate: function () {
  813. // vars
  814. var newKey = acf.uniqid('field_'); // duplicate
  815. var $newField = acf.duplicate({
  816. target: this.$el,
  817. search: this.get('id'),
  818. replace: newKey
  819. }); // set new key
  820. $newField.attr('data-key', newKey); // get instance
  821. var newField = acf.getFieldObject($newField); // open / close
  822. if (this.isOpen()) {
  823. this.close();
  824. } else {
  825. newField.open();
  826. } // focus label
  827. var $label = newField.$setting('label input');
  828. setTimeout(function () {
  829. $label.trigger('focus');
  830. }, 251); // update newField label / name
  831. var label = newField.prop('label');
  832. var name = newField.prop('name');
  833. var end = name.split('_').pop();
  834. var copy = acf.__('copy'); // increase suffix "1"
  835. if (acf.isNumeric(end)) {
  836. var i = end * 1 + 1;
  837. label = label.replace(end, i);
  838. name = name.replace(end, i); // increase suffix "(copy1)"
  839. } else if (end.indexOf(copy) === 0) {
  840. var i = end.replace(copy, '') * 1;
  841. i = i ? i + 1 : 2; // replace
  842. label = label.replace(end, copy + i);
  843. name = name.replace(end, copy + i); // add default "(copy)"
  844. } else {
  845. label += ' (' + copy + ')';
  846. name += '_' + copy;
  847. }
  848. newField.prop('ID', 0);
  849. newField.prop('label', label);
  850. newField.prop('name', name);
  851. newField.prop('key', newKey); // action
  852. acf.doAction('duplicate_field_object', this, newField);
  853. acf.doAction('append_field_object', newField);
  854. },
  855. wipe: function () {
  856. // vars
  857. var prevId = this.get('id');
  858. var prevKey = this.get('key');
  859. var newKey = acf.uniqid('field_'); // rename
  860. acf.rename({
  861. target: this.$el,
  862. search: prevId,
  863. replace: newKey
  864. }); // data
  865. this.set('id', newKey);
  866. this.set('prevId', prevId);
  867. this.set('prevKey', prevKey); // props
  868. this.prop('key', newKey);
  869. this.prop('ID', 0); // attr
  870. this.$el.attr('data-key', newKey);
  871. this.$el.attr('data-id', newKey); // action
  872. acf.doAction('wipe_field_object', this);
  873. },
  874. move: function () {
  875. // helper
  876. var hasChanged = function (field) {
  877. return field.get('save') == 'settings';
  878. }; // vars
  879. var changed = hasChanged(this); // has sub fields changed
  880. if (!changed) {
  881. acf.getFieldObjects({
  882. parent: this.$el
  883. }).map(function (field) {
  884. changed = hasChanged(field) || field.changed;
  885. });
  886. } // bail early if changed
  887. if (changed) {
  888. alert(acf.__('This field cannot be moved until its changes have been saved'));
  889. return;
  890. } // step 1.
  891. var id = this.prop('ID');
  892. var field = this;
  893. var popup = false;
  894. var step1 = function () {
  895. // popup
  896. popup = acf.newPopup({
  897. title: acf.__('Move Custom Field'),
  898. loading: true,
  899. width: '300px'
  900. }); // ajax
  901. var ajaxData = {
  902. action: 'acf/field_group/move_field',
  903. field_id: id
  904. }; // get HTML
  905. $.ajax({
  906. url: acf.get('ajaxurl'),
  907. data: acf.prepareForAjax(ajaxData),
  908. type: 'post',
  909. dataType: 'html',
  910. success: step2
  911. });
  912. };
  913. var step2 = function (html) {
  914. // update popup
  915. popup.loading(false);
  916. popup.content(html); // submit form
  917. popup.on('submit', 'form', step3);
  918. };
  919. var step3 = function (e, $el) {
  920. // prevent
  921. e.preventDefault(); // disable
  922. acf.startButtonLoading(popup.$('.button')); // ajax
  923. var ajaxData = {
  924. action: 'acf/field_group/move_field',
  925. field_id: id,
  926. field_group_id: popup.$('select').val()
  927. }; // get HTML
  928. $.ajax({
  929. url: acf.get('ajaxurl'),
  930. data: acf.prepareForAjax(ajaxData),
  931. type: 'post',
  932. dataType: 'html',
  933. success: step4
  934. });
  935. };
  936. var step4 = function (html) {
  937. // update popup
  938. popup.content(html); // remove element
  939. field.removeAnimate();
  940. }; // start
  941. step1();
  942. },
  943. onChangeType: function (e, $el) {
  944. // clea previous timout
  945. if (this.changeTimeout) {
  946. clearTimeout(this.changeTimeout);
  947. } // set new timeout
  948. // - prevents changing type multiple times whilst user types in newType
  949. this.changeTimeout = this.setTimeout(function () {
  950. this.changeType($el.val());
  951. }, 300);
  952. },
  953. changeType: function (newType) {
  954. // vars
  955. var prevType = this.prop('type');
  956. var prevClass = acf.strSlugify('acf-field-object-' + prevType);
  957. var newClass = acf.strSlugify('acf-field-object-' + newType); // update props
  958. this.$el.removeClass(prevClass).addClass(newClass);
  959. this.$el.attr('data-type', newType);
  960. this.$el.data('type', newType); // abort XHR if this field is already loading AJAX data
  961. if (this.has('xhr')) {
  962. this.get('xhr').abort();
  963. } // store settings
  964. var $tbody = this.$('> .settings > table > tbody');
  965. var $settings = $tbody.children('[data-setting="' + prevType + '"]');
  966. this.set('settings-' + prevType, $settings);
  967. $settings.detach(); // show settings
  968. if (this.has('settings-' + newType)) {
  969. var $newSettings = this.get('settings-' + newType);
  970. this.$setting('conditional_logic').before($newSettings);
  971. this.set('type', newType); //this.refresh();
  972. return;
  973. } // load settings
  974. var $loading = $('<tr class="acf-field"><td class="acf-label"></td><td class="acf-input"><div class="acf-loading"></div></td></tr>');
  975. this.$setting('conditional_logic').before($loading); // ajax
  976. var ajaxData = {
  977. action: 'acf/field_group/render_field_settings',
  978. field: this.serialize(),
  979. prefix: this.getInputName()
  980. }; // ajax
  981. var xhr = $.ajax({
  982. url: acf.get('ajaxurl'),
  983. data: acf.prepareForAjax(ajaxData),
  984. type: 'post',
  985. dataType: 'html',
  986. context: this,
  987. success: function (html) {
  988. // bail early if no settings
  989. if (!html) return; // append settings
  990. $loading.after(html); // events
  991. acf.doAction('append', $tbody);
  992. },
  993. complete: function () {
  994. // also triggered by xhr.abort();
  995. $loading.remove();
  996. this.set('type', newType); //this.refresh();
  997. }
  998. }); // set
  999. this.set('xhr', xhr);
  1000. },
  1001. updateParent: function () {
  1002. // vars
  1003. var ID = acf.get('post_id'); // check parent
  1004. var parent = this.getParent();
  1005. if (parent) {
  1006. ID = parseInt(parent.prop('ID')) || parent.prop('key');
  1007. } // update
  1008. this.prop('parent', ID);
  1009. }
  1010. });
  1011. })(jQuery);
  1012. /***/ }),
  1013. /***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-fields.js":
  1014. /*!*****************************************************************************!*\
  1015. !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-fields.js ***!
  1016. \*****************************************************************************/
  1017. /***/ (function() {
  1018. (function ($, undefined) {
  1019. /**
  1020. * acf.findFieldObject
  1021. *
  1022. * Returns a single fieldObject $el for a given field key
  1023. *
  1024. * @date 1/2/18
  1025. * @since 5.7.0
  1026. *
  1027. * @param string key The field key
  1028. * @return jQuery
  1029. */
  1030. acf.findFieldObject = function (key) {
  1031. return acf.findFieldObjects({
  1032. key: key,
  1033. limit: 1
  1034. });
  1035. };
  1036. /**
  1037. * acf.findFieldObjects
  1038. *
  1039. * Returns an array of fieldObject $el for the given args
  1040. *
  1041. * @date 1/2/18
  1042. * @since 5.7.0
  1043. *
  1044. * @param object args
  1045. * @return jQuery
  1046. */
  1047. acf.findFieldObjects = function (args) {
  1048. // vars
  1049. args = args || {};
  1050. var selector = '.acf-field-object';
  1051. var $fields = false; // args
  1052. args = acf.parseArgs(args, {
  1053. id: '',
  1054. key: '',
  1055. type: '',
  1056. limit: false,
  1057. list: null,
  1058. parent: false,
  1059. sibling: false,
  1060. child: false
  1061. }); // id
  1062. if (args.id) {
  1063. selector += '[data-id="' + args.id + '"]';
  1064. } // key
  1065. if (args.key) {
  1066. selector += '[data-key="' + args.key + '"]';
  1067. } // type
  1068. if (args.type) {
  1069. selector += '[data-type="' + args.type + '"]';
  1070. } // query
  1071. if (args.list) {
  1072. $fields = args.list.children(selector);
  1073. } else if (args.parent) {
  1074. $fields = args.parent.find(selector);
  1075. } else if (args.sibling) {
  1076. $fields = args.sibling.siblings(selector);
  1077. } else if (args.child) {
  1078. $fields = args.child.parents(selector);
  1079. } else {
  1080. $fields = $(selector);
  1081. } // limit
  1082. if (args.limit) {
  1083. $fields = $fields.slice(0, args.limit);
  1084. } // return
  1085. return $fields;
  1086. };
  1087. /**
  1088. * acf.getFieldObject
  1089. *
  1090. * Returns a single fieldObject instance for a given $el|key
  1091. *
  1092. * @date 1/2/18
  1093. * @since 5.7.0
  1094. *
  1095. * @param string|jQuery $field The field $el or key
  1096. * @return jQuery
  1097. */
  1098. acf.getFieldObject = function ($field) {
  1099. // allow key
  1100. if (typeof $field === 'string') {
  1101. $field = acf.findFieldObject($field);
  1102. } // instantiate
  1103. var field = $field.data('acf');
  1104. if (!field) {
  1105. field = acf.newFieldObject($field);
  1106. } // return
  1107. return field;
  1108. };
  1109. /**
  1110. * acf.getFieldObjects
  1111. *
  1112. * Returns an array of fieldObject instances for the given args
  1113. *
  1114. * @date 1/2/18
  1115. * @since 5.7.0
  1116. *
  1117. * @param object args
  1118. * @return array
  1119. */
  1120. acf.getFieldObjects = function (args) {
  1121. // query
  1122. var $fields = acf.findFieldObjects(args); // loop
  1123. var fields = [];
  1124. $fields.each(function () {
  1125. var field = acf.getFieldObject($(this));
  1126. fields.push(field);
  1127. }); // return
  1128. return fields;
  1129. };
  1130. /**
  1131. * acf.newFieldObject
  1132. *
  1133. * Initializes and returns a new FieldObject instance
  1134. *
  1135. * @date 1/2/18
  1136. * @since 5.7.0
  1137. *
  1138. * @param jQuery $field The field $el
  1139. * @return object
  1140. */
  1141. acf.newFieldObject = function ($field) {
  1142. // instantiate
  1143. var field = new acf.FieldObject($field); // action
  1144. acf.doAction('new_field_object', field); // return
  1145. return field;
  1146. };
  1147. /**
  1148. * actionManager
  1149. *
  1150. * description
  1151. *
  1152. * @date 15/12/17
  1153. * @since 5.6.5
  1154. *
  1155. * @param type $var Description. Default.
  1156. * @return type Description.
  1157. */
  1158. var eventManager = new acf.Model({
  1159. priority: 5,
  1160. initialize: function () {
  1161. // actions
  1162. var actions = ['prepare', 'ready', 'append', 'remove']; // loop
  1163. actions.map(function (action) {
  1164. this.addFieldActions(action);
  1165. }, this);
  1166. },
  1167. addFieldActions: function (action) {
  1168. // vars
  1169. var pluralAction = action + '_field_objects'; // ready_field_objects
  1170. var singleAction = action + '_field_object'; // ready_field_object
  1171. var singleEvent = action + 'FieldObject'; // readyFieldObject
  1172. // global action
  1173. var callback = function ($el
  1174. /*, arg1, arg2, etc*/
  1175. ) {
  1176. // vars
  1177. var fieldObjects = acf.getFieldObjects({
  1178. parent: $el
  1179. }); // call plural
  1180. if (fieldObjects.length) {
  1181. /// get args [$el, arg1]
  1182. var args = acf.arrayArgs(arguments); // modify args [pluralAction, fields, arg1]
  1183. args.splice(0, 1, pluralAction, fieldObjects);
  1184. acf.doAction.apply(null, args);
  1185. }
  1186. }; // plural action
  1187. var pluralCallback = function (fieldObjects
  1188. /*, arg1, arg2, etc*/
  1189. ) {
  1190. /// get args [fields, arg1]
  1191. var args = acf.arrayArgs(arguments); // modify args [singleAction, fields, arg1]
  1192. args.unshift(singleAction); // loop
  1193. fieldObjects.map(function (fieldObject) {
  1194. // modify args [singleAction, field, arg1]
  1195. args[1] = fieldObject;
  1196. acf.doAction.apply(null, args);
  1197. });
  1198. }; // single action
  1199. var singleCallback = function (fieldObject
  1200. /*, arg1, arg2, etc*/
  1201. ) {
  1202. /// get args [$field, arg1]
  1203. var args = acf.arrayArgs(arguments); // modify args [singleAction, $field, arg1]
  1204. args.unshift(singleAction); // action variations (ready_field/type=image)
  1205. var variations = ['type', 'name', 'key'];
  1206. variations.map(function (variation) {
  1207. args[0] = singleAction + '/' + variation + '=' + fieldObject.get(variation);
  1208. acf.doAction.apply(null, args);
  1209. }); // modify args [arg1]
  1210. args.splice(0, 2); // event
  1211. fieldObject.trigger(singleEvent, args);
  1212. }; // add actions
  1213. acf.addAction(action, callback, 5);
  1214. acf.addAction(pluralAction, pluralCallback, 5);
  1215. acf.addAction(singleAction, singleCallback, 5);
  1216. }
  1217. });
  1218. /**
  1219. * fieldManager
  1220. *
  1221. * description
  1222. *
  1223. * @date 4/1/18
  1224. * @since 5.6.5
  1225. *
  1226. * @param type $var Description. Default.
  1227. * @return type Description.
  1228. */
  1229. var fieldManager = new acf.Model({
  1230. id: 'fieldManager',
  1231. events: {
  1232. 'submit #post': 'onSubmit',
  1233. 'mouseenter .acf-field-list': 'onHoverSortable',
  1234. 'click .add-field': 'onClickAdd'
  1235. },
  1236. actions: {
  1237. removed_field_object: 'onRemovedField',
  1238. sortstop_field_object: 'onReorderField',
  1239. delete_field_object: 'onDeleteField',
  1240. change_field_object_type: 'onChangeFieldType',
  1241. duplicate_field_object: 'onDuplicateField'
  1242. },
  1243. onSubmit: function (e, $el) {
  1244. // vars
  1245. var fields = acf.getFieldObjects(); // loop
  1246. fields.map(function (field) {
  1247. field.submit();
  1248. });
  1249. },
  1250. setFieldMenuOrder: function (field) {
  1251. this.renderFields(field.$el.parent());
  1252. },
  1253. onHoverSortable: function (e, $el) {
  1254. // bail early if already sortable
  1255. if ($el.hasClass('ui-sortable')) return; // sortable
  1256. $el.sortable({
  1257. handle: '.acf-sortable-handle',
  1258. connectWith: '.acf-field-list',
  1259. start: function (e, ui) {
  1260. var field = acf.getFieldObject(ui.item);
  1261. ui.placeholder.height(ui.item.height());
  1262. acf.doAction('sortstart_field_object', field, $el);
  1263. },
  1264. update: function (e, ui) {
  1265. var field = acf.getFieldObject(ui.item);
  1266. acf.doAction('sortstop_field_object', field, $el);
  1267. }
  1268. });
  1269. },
  1270. onRemovedField: function (field, $list) {
  1271. this.renderFields($list);
  1272. },
  1273. onReorderField: function (field, $list) {
  1274. field.updateParent();
  1275. this.renderFields($list);
  1276. },
  1277. onDeleteField: function (field) {
  1278. // delete children
  1279. field.getFields().map(function (child) {
  1280. child.delete({
  1281. animate: false
  1282. });
  1283. });
  1284. },
  1285. onChangeFieldType: function (field) {// this caused sub fields to disapear if changing type back...
  1286. //this.onDeleteField( field );
  1287. },
  1288. onDuplicateField: function (field, newField) {
  1289. // check for children
  1290. var children = newField.getFields();
  1291. if (children.length) {
  1292. // loop
  1293. children.map(function (child) {
  1294. // wipe field
  1295. child.wipe(); // update parent
  1296. child.updateParent();
  1297. }); // action
  1298. acf.doAction('duplicate_field_objects', children, newField, field);
  1299. } // set menu order
  1300. this.setFieldMenuOrder(newField);
  1301. },
  1302. renderFields: function ($list) {
  1303. // vars
  1304. var fields = acf.getFieldObjects({
  1305. list: $list
  1306. }); // no fields
  1307. if (!fields.length) {
  1308. $list.addClass('-empty');
  1309. return;
  1310. } // has fields
  1311. $list.removeClass('-empty'); // prop
  1312. fields.map(function (field, i) {
  1313. field.prop('menu_order', i);
  1314. });
  1315. },
  1316. onClickAdd: function (e, $el) {
  1317. var $list = $el.closest('.acf-tfoot').siblings('.acf-field-list');
  1318. this.addField($list);
  1319. },
  1320. addField: function ($list) {
  1321. // vars
  1322. var html = $('#tmpl-acf-field').html();
  1323. var $el = $(html);
  1324. var prevId = $el.data('id');
  1325. var newKey = acf.uniqid('field_'); // duplicate
  1326. var $newField = acf.duplicate({
  1327. target: $el,
  1328. search: prevId,
  1329. replace: newKey,
  1330. append: function ($el, $el2) {
  1331. $list.append($el2);
  1332. }
  1333. }); // get instance
  1334. var newField = acf.getFieldObject($newField); // props
  1335. newField.prop('key', newKey);
  1336. newField.prop('ID', 0);
  1337. newField.prop('label', '');
  1338. newField.prop('name', ''); // attr
  1339. $newField.attr('data-key', newKey);
  1340. $newField.attr('data-id', newKey); // update parent prop
  1341. newField.updateParent(); // focus label
  1342. var $label = newField.$input('label');
  1343. setTimeout(function () {
  1344. $label.trigger('focus');
  1345. }, 251); // open
  1346. newField.open(); // set menu order
  1347. this.renderFields($list); // action
  1348. acf.doAction('add_field_object', newField);
  1349. acf.doAction('append_field_object', newField);
  1350. }
  1351. });
  1352. })(jQuery);
  1353. /***/ }),
  1354. /***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-locations.js":
  1355. /*!********************************************************************************!*\
  1356. !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-locations.js ***!
  1357. \********************************************************************************/
  1358. /***/ (function() {
  1359. (function ($, undefined) {
  1360. /**
  1361. * locationManager
  1362. *
  1363. * Field group location rules functionality
  1364. *
  1365. * @date 15/12/17
  1366. * @since 5.7.0
  1367. *
  1368. * @param void
  1369. * @return void
  1370. */
  1371. var locationManager = new acf.Model({
  1372. id: 'locationManager',
  1373. wait: 'ready',
  1374. events: {
  1375. 'click .add-location-rule': 'onClickAddRule',
  1376. 'click .add-location-group': 'onClickAddGroup',
  1377. 'click .remove-location-rule': 'onClickRemoveRule',
  1378. 'change .refresh-location-rule': 'onChangeRemoveRule'
  1379. },
  1380. initialize: function () {
  1381. this.$el = $('#acf-field-group-locations');
  1382. this.updateGroupsClass();
  1383. },
  1384. onClickAddRule: function (e, $el) {
  1385. this.addRule($el.closest('tr'));
  1386. },
  1387. onClickRemoveRule: function (e, $el) {
  1388. this.removeRule($el.closest('tr'));
  1389. },
  1390. onChangeRemoveRule: function (e, $el) {
  1391. this.changeRule($el.closest('tr'));
  1392. },
  1393. onClickAddGroup: function (e, $el) {
  1394. this.addGroup();
  1395. },
  1396. addRule: function ($tr) {
  1397. acf.duplicate($tr);
  1398. this.updateGroupsClass();
  1399. },
  1400. removeRule: function ($tr) {
  1401. if ($tr.siblings('tr').length == 0) {
  1402. $tr.closest('.rule-group').remove();
  1403. } else {
  1404. $tr.remove();
  1405. } // Update h4
  1406. var $group = this.$('.rule-group:first');
  1407. $group.find('h4').text(acf.__('Show this field group if'));
  1408. this.updateGroupsClass();
  1409. },
  1410. changeRule: function ($rule) {
  1411. // vars
  1412. var $group = $rule.closest('.rule-group');
  1413. var prefix = $rule.find('td.param select').attr('name').replace('[param]', ''); // ajaxdata
  1414. var ajaxdata = {};
  1415. ajaxdata.action = 'acf/field_group/render_location_rule';
  1416. ajaxdata.rule = acf.serialize($rule, prefix);
  1417. ajaxdata.rule.id = $rule.data('id');
  1418. ajaxdata.rule.group = $group.data('id'); // temp disable
  1419. acf.disable($rule.find('td.value')); // ajax
  1420. $.ajax({
  1421. url: acf.get('ajaxurl'),
  1422. data: acf.prepareForAjax(ajaxdata),
  1423. type: 'post',
  1424. dataType: 'html',
  1425. success: function (html) {
  1426. if (!html) return;
  1427. $rule.replaceWith(html);
  1428. }
  1429. });
  1430. },
  1431. addGroup: function () {
  1432. // vars
  1433. var $group = this.$('.rule-group:last'); // duplicate
  1434. $group2 = acf.duplicate($group); // update h4
  1435. $group2.find('h4').text(acf.__('or')); // remove all tr's except the first one
  1436. $group2.find('tr').not(':first').remove(); // update the groups class
  1437. this.updateGroupsClass();
  1438. },
  1439. updateGroupsClass: function () {
  1440. var $group = this.$('.rule-group:last');
  1441. var $ruleGroups = $group.closest('.rule-groups');
  1442. var rows_count = $ruleGroups.find('.acf-table tr').length;
  1443. if (rows_count > 1) {
  1444. $ruleGroups.addClass('rule-groups-multiple');
  1445. } else {
  1446. $ruleGroups.removeClass('rule-groups-multiple');
  1447. }
  1448. }
  1449. });
  1450. })(jQuery);
  1451. /***/ }),
  1452. /***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-settings.js":
  1453. /*!*******************************************************************************!*\
  1454. !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-settings.js ***!
  1455. \*******************************************************************************/
  1456. /***/ (function() {
  1457. (function ($, undefined) {
  1458. /**
  1459. * mid
  1460. *
  1461. * Calculates the model ID for a field type
  1462. *
  1463. * @date 15/12/17
  1464. * @since 5.6.5
  1465. *
  1466. * @param string type
  1467. * @return string
  1468. */
  1469. var modelId = function (type) {
  1470. return acf.strPascalCase(type || '') + 'FieldSetting';
  1471. };
  1472. /**
  1473. * registerFieldType
  1474. *
  1475. * description
  1476. *
  1477. * @date 14/12/17
  1478. * @since 5.6.5
  1479. *
  1480. * @param type $var Description. Default.
  1481. * @return type Description.
  1482. */
  1483. acf.registerFieldSetting = function (model) {
  1484. var proto = model.prototype;
  1485. var mid = modelId(proto.type + ' ' + proto.name);
  1486. this.models[mid] = model;
  1487. };
  1488. /**
  1489. * newField
  1490. *
  1491. * description
  1492. *
  1493. * @date 14/12/17
  1494. * @since 5.6.5
  1495. *
  1496. * @param type $var Description. Default.
  1497. * @return type Description.
  1498. */
  1499. acf.newFieldSetting = function (field) {
  1500. // vars
  1501. var type = field.get('setting') || '';
  1502. var name = field.get('name') || '';
  1503. var mid = modelId(type + ' ' + name);
  1504. var model = acf.models[mid] || null; // bail ealry if no setting
  1505. if (model === null) return false; // instantiate
  1506. var setting = new model(field); // return
  1507. return setting;
  1508. };
  1509. /**
  1510. * acf.getFieldSetting
  1511. *
  1512. * description
  1513. *
  1514. * @date 19/4/18
  1515. * @since 5.6.9
  1516. *
  1517. * @param type $var Description. Default.
  1518. * @return type Description.
  1519. */
  1520. acf.getFieldSetting = function (field) {
  1521. // allow jQuery
  1522. if (field instanceof jQuery) {
  1523. field = acf.getField(field);
  1524. } // return
  1525. return field.setting;
  1526. };
  1527. /**
  1528. * settingsManager
  1529. *
  1530. * description
  1531. *
  1532. * @date 6/1/18
  1533. * @since 5.6.5
  1534. *
  1535. * @param type $var Description. Default.
  1536. * @return type Description.
  1537. */
  1538. var settingsManager = new acf.Model({
  1539. actions: {
  1540. new_field: 'onNewField'
  1541. },
  1542. onNewField: function (field) {
  1543. field.setting = acf.newFieldSetting(field);
  1544. }
  1545. });
  1546. /**
  1547. * acf.FieldSetting
  1548. *
  1549. * description
  1550. *
  1551. * @date 6/1/18
  1552. * @since 5.6.5
  1553. *
  1554. * @param type $var Description. Default.
  1555. * @return type Description.
  1556. */
  1557. acf.FieldSetting = acf.Model.extend({
  1558. field: false,
  1559. type: '',
  1560. name: '',
  1561. wait: 'ready',
  1562. eventScope: '.acf-field',
  1563. events: {
  1564. change: 'render'
  1565. },
  1566. setup: function (field) {
  1567. // vars
  1568. var $field = field.$el; // set props
  1569. this.$el = $field;
  1570. this.field = field;
  1571. this.$fieldObject = $field.closest('.acf-field-object');
  1572. this.fieldObject = acf.getFieldObject(this.$fieldObject); // inherit data
  1573. $.extend(this.data, field.data);
  1574. },
  1575. initialize: function () {
  1576. this.render();
  1577. },
  1578. render: function () {// do nothing
  1579. }
  1580. });
  1581. /*
  1582. * Date Picker
  1583. *
  1584. * This field type requires some extra logic for its settings
  1585. *
  1586. * @type function
  1587. * @date 24/10/13
  1588. * @since 5.0.0
  1589. *
  1590. * @param n/a
  1591. * @return n/a
  1592. */
  1593. var DisplayFormatFieldSetting = acf.FieldSetting.extend({
  1594. type: '',
  1595. name: '',
  1596. render: function () {
  1597. var $input = this.$('input[type="radio"]:checked');
  1598. if ($input.val() != 'other') {
  1599. this.$('input[type="text"]').val($input.val());
  1600. }
  1601. }
  1602. });
  1603. var DatePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend({
  1604. type: 'date_picker',
  1605. name: 'display_format'
  1606. });
  1607. var DatePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend({
  1608. type: 'date_picker',
  1609. name: 'return_format'
  1610. });
  1611. acf.registerFieldSetting(DatePickerDisplayFormatFieldSetting);
  1612. acf.registerFieldSetting(DatePickerReturnFormatFieldSetting);
  1613. /*
  1614. * Date Time Picker
  1615. *
  1616. * This field type requires some extra logic for its settings
  1617. *
  1618. * @type function
  1619. * @date 24/10/13
  1620. * @since 5.0.0
  1621. *
  1622. * @param n/a
  1623. * @return n/a
  1624. */
  1625. var DateTimePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend({
  1626. type: 'date_time_picker',
  1627. name: 'display_format'
  1628. });
  1629. var DateTimePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend({
  1630. type: 'date_time_picker',
  1631. name: 'return_format'
  1632. });
  1633. acf.registerFieldSetting(DateTimePickerDisplayFormatFieldSetting);
  1634. acf.registerFieldSetting(DateTimePickerReturnFormatFieldSetting);
  1635. /*
  1636. * Time Picker
  1637. *
  1638. * This field type requires some extra logic for its settings
  1639. *
  1640. * @type function
  1641. * @date 24/10/13
  1642. * @since 5.0.0
  1643. *
  1644. * @param n/a
  1645. * @return n/a
  1646. */
  1647. var TimePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend({
  1648. type: 'time_picker',
  1649. name: 'display_format'
  1650. });
  1651. var TimePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend({
  1652. type: 'time_picker',
  1653. name: 'return_format'
  1654. });
  1655. acf.registerFieldSetting(TimePickerDisplayFormatFieldSetting);
  1656. acf.registerFieldSetting(TimePickerReturnFormatFieldSetting);
  1657. /**
  1658. * Color Picker Settings.
  1659. *
  1660. * @date 16/12/20
  1661. * @since 5.9.4
  1662. *
  1663. * @param type $var Description. Default.
  1664. * @return type Description.
  1665. */
  1666. var ColorPickerReturnFormat = acf.FieldSetting.extend({
  1667. type: 'color_picker',
  1668. name: 'enable_opacity',
  1669. render: function () {
  1670. var $return_format_setting = this.fieldObject.$setting('return_format');
  1671. var $default_value_setting = this.fieldObject.$setting('default_value');
  1672. var $labelText = $return_format_setting.find('input[type="radio"][value="string"]').parent('label').contents().last();
  1673. var $defaultPlaceholder = $default_value_setting.find('input[type="text"]');
  1674. var l10n = acf.get('colorPickerL10n');
  1675. if (this.field.val()) {
  1676. $labelText.replaceWith(l10n.rgba_string);
  1677. $defaultPlaceholder.attr('placeholder', 'rgba(255,255,255,0.8)');
  1678. } else {
  1679. $labelText.replaceWith(l10n.hex_string);
  1680. $defaultPlaceholder.attr('placeholder', '#FFFFFF');
  1681. }
  1682. }
  1683. });
  1684. acf.registerFieldSetting(ColorPickerReturnFormat);
  1685. })(jQuery);
  1686. /***/ }),
  1687. /***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group.js":
  1688. /*!**********************************************************************!*\
  1689. !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group.js ***!
  1690. \**********************************************************************/
  1691. /***/ (function() {
  1692. (function ($, undefined) {
  1693. /**
  1694. * fieldGroupManager
  1695. *
  1696. * Generic field group functionality
  1697. *
  1698. * @date 15/12/17
  1699. * @since 5.7.0
  1700. *
  1701. * @param void
  1702. * @return void
  1703. */
  1704. var fieldGroupManager = new acf.Model({
  1705. id: 'fieldGroupManager',
  1706. events: {
  1707. 'submit #post': 'onSubmit',
  1708. 'click a[href="#"]': 'onClick',
  1709. 'click .submitdelete': 'onClickTrash'
  1710. },
  1711. filters: {
  1712. find_fields_args: 'filterFindFieldArgs'
  1713. },
  1714. onSubmit: function (e, $el) {
  1715. // vars
  1716. var $title = $('#titlewrap #title'); // empty
  1717. if (!$title.val()) {
  1718. // prevent default
  1719. e.preventDefault(); // unlock form
  1720. acf.unlockForm($el); // alert
  1721. alert(acf.__('Field group title is required')); // focus
  1722. $title.trigger('focus');
  1723. }
  1724. },
  1725. onClick: function (e) {
  1726. e.preventDefault();
  1727. },
  1728. onClickTrash: function (e) {
  1729. var result = confirm(acf.__('Move to trash. Are you sure?'));
  1730. if (!result) {
  1731. e.preventDefault();
  1732. }
  1733. },
  1734. filterFindFieldArgs: function (args) {
  1735. args.visible = true;
  1736. return args;
  1737. }
  1738. });
  1739. /**
  1740. * screenOptionsManager
  1741. *
  1742. * Screen options functionality
  1743. *
  1744. * @date 15/12/17
  1745. * @since 5.7.0
  1746. *
  1747. * @param void
  1748. * @return void
  1749. */
  1750. var screenOptionsManager = new acf.Model({
  1751. id: 'screenOptionsManager',
  1752. wait: 'prepare',
  1753. events: {
  1754. change: 'onChange'
  1755. },
  1756. initialize: function () {
  1757. // vars
  1758. var $div = $('#adv-settings');
  1759. var $append = $('#acf-append-show-on-screen'); // append
  1760. $div.find('.metabox-prefs').append($append.html());
  1761. $div.find('.metabox-prefs br').remove(); // clean up
  1762. $append.remove(); // initialize
  1763. this.$el = $('#acf-field-key-hide'); // render
  1764. this.render();
  1765. },
  1766. isChecked: function () {
  1767. return this.$el.prop('checked');
  1768. },
  1769. onChange: function (e, $el) {
  1770. var val = this.isChecked() ? 1 : 0;
  1771. acf.updateUserSetting('show_field_keys', val);
  1772. this.render();
  1773. },
  1774. render: function () {
  1775. if (this.isChecked()) {
  1776. $('#acf-field-group-fields').addClass('show-field-keys');
  1777. } else {
  1778. $('#acf-field-group-fields').removeClass('show-field-keys');
  1779. }
  1780. }
  1781. });
  1782. /**
  1783. * appendFieldManager
  1784. *
  1785. * Appends fields together
  1786. *
  1787. * @date 15/12/17
  1788. * @since 5.7.0
  1789. *
  1790. * @param void
  1791. * @return void
  1792. */
  1793. var appendFieldManager = new acf.Model({
  1794. actions: {
  1795. new_field: 'onNewField'
  1796. },
  1797. onNewField: function (field) {
  1798. // bail ealry if not append
  1799. if (!field.has('append')) return; // vars
  1800. var append = field.get('append');
  1801. var $sibling = field.$el.siblings('[data-name="' + append + '"]').first(); // bail early if no sibling
  1802. if (!$sibling.length) return; // ul
  1803. var $div = $sibling.children('.acf-input');
  1804. var $ul = $div.children('ul'); // create ul
  1805. if (!$ul.length) {
  1806. $div.wrapInner('<ul class="acf-hl"><li></li></ul>');
  1807. $ul = $div.children('ul');
  1808. } // li
  1809. var html = field.$('.acf-input').html();
  1810. var $li = $('<li>' + html + '</li>');
  1811. $ul.append($li);
  1812. $ul.attr('data-cols', $ul.children().length); // clean up
  1813. field.remove();
  1814. }
  1815. });
  1816. })(jQuery);
  1817. /***/ })
  1818. /******/ });
  1819. /************************************************************************/
  1820. /******/ // The module cache
  1821. /******/ var __webpack_module_cache__ = {};
  1822. /******/
  1823. /******/ // The require function
  1824. /******/ function __webpack_require__(moduleId) {
  1825. /******/ // Check if module is in cache
  1826. /******/ var cachedModule = __webpack_module_cache__[moduleId];
  1827. /******/ if (cachedModule !== undefined) {
  1828. /******/ return cachedModule.exports;
  1829. /******/ }
  1830. /******/ // Create a new module (and put it into the cache)
  1831. /******/ var module = __webpack_module_cache__[moduleId] = {
  1832. /******/ // no module.id needed
  1833. /******/ // no module.loaded needed
  1834. /******/ exports: {}
  1835. /******/ };
  1836. /******/
  1837. /******/ // Execute the module function
  1838. /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
  1839. /******/
  1840. /******/ // Return the exports of the module
  1841. /******/ return module.exports;
  1842. /******/ }
  1843. /******/
  1844. /************************************************************************/
  1845. /******/ /* webpack/runtime/compat get default export */
  1846. /******/ !function() {
  1847. /******/ // getDefaultExport function for compatibility with non-harmony modules
  1848. /******/ __webpack_require__.n = function(module) {
  1849. /******/ var getter = module && module.__esModule ?
  1850. /******/ function() { return module['default']; } :
  1851. /******/ function() { return module; };
  1852. /******/ __webpack_require__.d(getter, { a: getter });
  1853. /******/ return getter;
  1854. /******/ };
  1855. /******/ }();
  1856. /******/
  1857. /******/ /* webpack/runtime/define property getters */
  1858. /******/ !function() {
  1859. /******/ // define getter functions for harmony exports
  1860. /******/ __webpack_require__.d = function(exports, definition) {
  1861. /******/ for(var key in definition) {
  1862. /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
  1863. /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
  1864. /******/ }
  1865. /******/ }
  1866. /******/ };
  1867. /******/ }();
  1868. /******/
  1869. /******/ /* webpack/runtime/hasOwnProperty shorthand */
  1870. /******/ !function() {
  1871. /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
  1872. /******/ }();
  1873. /******/
  1874. /******/ /* webpack/runtime/make namespace object */
  1875. /******/ !function() {
  1876. /******/ // define __esModule on exports
  1877. /******/ __webpack_require__.r = function(exports) {
  1878. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  1879. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  1880. /******/ }
  1881. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  1882. /******/ };
  1883. /******/ }();
  1884. /******/
  1885. /************************************************************************/
  1886. var __webpack_exports__ = {};
  1887. // This entry need to be wrapped in an IIFE because it need to be in strict mode.
  1888. !function() {
  1889. "use strict";
  1890. /*!*************************************************************************!*\
  1891. !*** ./src/advanced-custom-fields-pro/assets/src/js/acf-field-group.js ***!
  1892. \*************************************************************************/
  1893. __webpack_require__.r(__webpack_exports__);
  1894. /* harmony import */ var _field_group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_field-group.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group.js");
  1895. /* harmony import */ var _field_group_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_field_group_js__WEBPACK_IMPORTED_MODULE_0__);
  1896. /* harmony import */ var _field_group_field_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_field-group-field.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-field.js");
  1897. /* harmony import */ var _field_group_field_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_field_group_field_js__WEBPACK_IMPORTED_MODULE_1__);
  1898. /* harmony import */ var _field_group_settings_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_field-group-settings.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-settings.js");
  1899. /* harmony import */ var _field_group_settings_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_field_group_settings_js__WEBPACK_IMPORTED_MODULE_2__);
  1900. /* harmony import */ var _field_group_conditions_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_field-group-conditions.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-conditions.js");
  1901. /* harmony import */ var _field_group_conditions_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_field_group_conditions_js__WEBPACK_IMPORTED_MODULE_3__);
  1902. /* harmony import */ var _field_group_fields_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_field-group-fields.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-fields.js");
  1903. /* harmony import */ var _field_group_fields_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_field_group_fields_js__WEBPACK_IMPORTED_MODULE_4__);
  1904. /* harmony import */ var _field_group_locations_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_field-group-locations.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-locations.js");
  1905. /* harmony import */ var _field_group_locations_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_field_group_locations_js__WEBPACK_IMPORTED_MODULE_5__);
  1906. /* harmony import */ var _field_group_compatibility_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_field-group-compatibility.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-compatibility.js");
  1907. /* harmony import */ var _field_group_compatibility_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_field_group_compatibility_js__WEBPACK_IMPORTED_MODULE_6__);
  1908. }();
  1909. /******/ })()
  1910. ;
  1911. //# sourceMappingURL=acf-field-group.js.map