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