import{__assign as e}from"../_virtual/_tslib.js";import t from"../utils/clone.js";import{theSame as r}from"../utils/amap-helpers.js";import{bindTwoWayEvent as n}from"./events.js";var o={equals:r,clone:!1};function i(e,r,n,o){var i=n.setter;i&&("function"==typeof i?i.call(e,r,o):"string"==typeof i&&(n.clone&&(o=t(o)),r[i](o)))}function f(e,t,r){t||(t=e.$amap.context.target),r||(r=e.$options.props);var o=function(o){var f=r[o];if(!f.setter)return"continue";var p={deep:!!f.deep};e.$amap.logger.debug("watch",o,p),e.$watch("$props."+o,(function(r,n){if(!p.deep||p.deep&&r!==n)if("function"==typeof f.equals){if(f.equals(r,n))return}else if(r===n)return;i(e,t,f,r)}),p),f.events&&n(e,o,f,t)};for(var f in r)o(f)}function p(t,r,n){if("string"==typeof t){var i=t,f=e(e({},o),{setter:i});return r&&(f.type=r),arguments.length>=3&&(f.default=n),f}return e(e({},o),t)}export{f as bindProps,p as defineProp,i as setPropValue};