diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 44ef28a0..10e19b81 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 16 - - run: npm ci + - run: npm ci --legacy-peer-deps - run: npm test publish-npm: @@ -27,7 +27,7 @@ jobs: with: node-version: 16 registry-url: https://registry.npmjs.org/ - - run: npm ci + - run: npm ci --legacy-peer-deps - run: npm publish env: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} diff --git a/.gitignore b/.gitignore index b285c855..7666e86f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ node_modules/* jsdoc/* out/* .DS_Store -.vscode \ No newline at end of file +.vscode +dist/* \ No newline at end of file diff --git a/dist/ui-extension-sdk.css b/dist/ui-extension-sdk.css deleted file mode 100644 index c0d33250..00000000 --- a/dist/ui-extension-sdk.css +++ /dev/null @@ -1,1610 +0,0 @@ -/* Contentstack Widgets */ - -/*font family*/ - -@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.min.css'); -@font-face { - font-family: proximaNovaRegular; - src: url(https://new-static.contentstack.io/fonts/ProximaNova-Regular.otf) -} - -@font-face { - font-family: proximaNoveBold; - src: url(https://new-static.contentstack.io/fonts/ProximaNova-Bold.otf) -} - -@font-face { - font-family: proximaNovaSemiBold; - src: url(https://new-static.contentstack.io/fonts/ProximaNova-Semibold.otf) -} - -@font-face { - font-family: ProximaNovaRegularItalic; - src: url(https://new-static.contentstack.io/fonts/ProximaNova-RegularItalic.otf) -} - -@font-face { - font-family: ProximaNovaLight; - src: url(https://new-static.contentstack.io/fonts/ProximaNova-Light.otf) -} - -/* Defaults */ - -html, -body { - font-family: "proximaNovaRegular", Arial, Helvetica, Sans-Serif; - font-size: 13px; - box-sizing: border-box; - line-height: 1.5; - color: #748590; - margin: 0; -} - -*:focus { - outline: 0px !important; - -webkit-box-shadow: none !important; - -moz-box-shadow: none !important; - -ms-box-shadow: none !important; - -o-box-shadow: none !important; - box-shadow: none !important; -} - -*, -*:before, -*:after { - box-sizing: inherit; -} - -p, -div, -a { - word-wrap: break-word; -} - -a:hover { - text-decoration: none; - color: #1da6a1; -} - -a:focus { - color: #23bab5; -} - -input, -button, -textarea { - font-family: "proximaNovaRegular", Arial, Helvetica, Sans-Serif; -} - -a { - color: #23bab5; - cursor: pointer; -} - -* { - margin: 0; - padding: 0; -} - -::-webkit-file-upload-button { - cursor: pointer; -} - -input[type=file] { - cursor: pointer; - font-size: 23px; - padding: 0; -} - -ul { - margin: 0px; - padding: 0px; -} - -ul li { - list-style: none; -} - -h1 { - font-size: 22px; - font-family: ProximaNovaLight; -} - -h2 { - font-size: 20px; -} - -h3 { - font-size: 16px; -} - -h4 { - font-size: 14px; -} - -h5 { - font-size: 12px; -} - -h6 { - font-size: 11px; -} - -h2, -h3, -h4, -h5, -h6 { - font-family: proximaNovaSemiBold; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 0px; -} - -p { - font-size: 14px; - line-height: 20px; - margin-bottom: 25px; -} - -label { - font-weight: normal; -} - -.clearfix:after, -.clear { - clear: both; -} - -.font-bold { - font-family: 'proximaNoveBold'; -} - -.font-semi-bold { - font-family: 'proximaNovaSemiBold'; -} - -.flex { - display: flex; -} - -.collapse { - display: none !important; -} - -.collapse.in { - display: block !important; -} - -.clearfix:before, -.clearfix:after { - content: ""; - display: table; -} - -.white-text { - color: #fff; -} - -.left { - float: left; -} - -.right { - float: right; -} - -.center { - text-align: center; -} - -.flex-wrap { - flex-wrap: wrap; -} - -.vertical-center { - position: absolute; - transform: translateY(-50%); - -webkit-transform: translateY(-50%); - -moz-transform: translateY(-50%); - -ms-transform: translateY(-50%); - top: 50%; -} - -/*Forms and other controls*/ - -.cs-text-box::-webkit-input-placeholder { - color: #aabac4; -} - -.cs-text-box::-moz-placeholder { - color: #aabac4; -} - -.cs-text-box:-ms-input-placeholder { - color: #aabac4; -} - -.cs-text-box { - font-size: 14px; - border: 1px solid #e6eced; - height: 35px; - color: #748590; - padding: 8px 10px; - background-color: #f7fbfc; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.cs-text-box:focus { - outline: 0; - border-color: #bbddeb; - color: #748590; -} - -.cs-text-box:disabled { - color: #a5b0b3; - border-color: rgba(230, 236, 237, 0.15); -} - -.cs-text-box.error { - color: #f18183; - background-color: #fef5f5; - border-color: #fac8c8; -} - -.cs-form-group { - margin-bottom: 25px; -} - -.cs-form-group textarea.cs-text-box { - min-height: 90px; - resize: none; -} - -.cs-form-group .field-label { - display: block; - margin-bottom: 8px; - font-size: 14px; -} - -.cs-form-group .invalid { - display: block; - font-size: 12px; - color: #F77D7A; - text-align: left; - padding-top: 6px; -} - -.cs-form-group .has-error { - outline: 0; - border-color: #F6C9CE !important; - background-color: #FFF5F6 !important; -} - -.cs-form-group .field-label .mandatory { - color: #ea3c3c; - font-size: 13px; -} - -.cs-form-group .field-label .mandatory-align { - margin-left: 2px; -} - -.cs-form-group.search-box { - position: relative; - border: 0px; -} - -.cs-form-group.search-box .cs-text-box { - padding-left: 20px; - border: 0px; - color: #b7b7b7; -} - -.cs-form-group.search-box .cs-text-box::-webkit-input-placeholder { - color: #aabac4; - font-family: 'ProximaNovaRegularItalic'; -} - -.cs-form-group.search-box .cs-text-box::-moz-placeholder { - color: #aabac4; - font-family: 'ProximaNovaRegularItalic'; -} - -.cs-form-group.search-box .cs-text-box::-ms-input-placeholder { - color: #aabac4; - font-family: 'ProximaNovaRegularItalic'; -} - -.cs-form-group.search-box i { - position: absolute; - left: 0px; - top: 8px; - color: #63747f; -} - -.cs-form-group.search-box i.icon-remove { - left: auto; - top: 10px; - right: 0; - cursor: pointer; -} - -.cs-checkbox input[type=checkbox].cs, -.cs-checkbox input[type=radio].cs { - visibility: hidden; - position: absolute; - z-index: 20; - width: 18px; - height: 18px; -} - -.cs-checkbox .lbl { - color: #748590; -} - -.cs-checkbox input[type=radio].cs+span { - position: relative; - display: inline-block; - min-height: 18px; - min-width: 18px; - cursor: pointer; -} - -.cs-checkbox input[type=checkbox].cs+.lbl, -.cs-checkbox input[type=radio].cs+span { - position: relative; - display: inline-block; - min-height: 18px; - min-width: 18px; - cursor: pointer; -} - -.cs-checkbox input[type=checkbox].cs:checked+.lblnew::after, -.cs-checkbox input[type=radio].cs:checked+.lbl::before { - display: inline-block; - content: '\f00c'; - background-color: transparent; -} - -.cs-checkbox input[type=checkbox].cs:checked+.lbl::before, -.cs-checkbox input[type=radio].cs:checked+.lbl::before { - display: inline-block; - content: '\f00c'; - background-color: transparent; -} - -.cs-checkbox input[type=checkbox].cs+.lbl::before { - cursor: pointer; - font-family: fontAwesome; - font-weight: 400; - font-size: 12px; - color: #25c2a3; - content: "\a0"; - background-color: #dfeaec; - border-radius: 0; - display: inline-block; - text-align: center; - height: 15px; - line-height: 14px; - min-width: 15px; - margin-right: 8px; - position: relative; - top: -1px; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - margin-top: 1.4px; -} - -.cs-checkbox input[type=radio].cs+.lbl::before { - cursor: pointer; - font-family: fontAwesome; - font-weight: 400; - font-size: 12px; - color: #25c2a3; - content: "\a0"; - background-color: #dfeaec; - border-radius: 0; - display: inline-block; - text-align: center; - height: 15px; - line-height: 14px; - min-width: 15px; - margin-right: 8px; - position: relative; - top: -1px; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.cs-checkbox .cs:hover+span:before { - background: #dfeaec !important; -} - -.cs-checkbox input[type=radio].cs:disabled+.lbl::before { - box-shadow: none !important; - color: #748590; - cursor: default; -} - -.cs-checkbox input[type=checkbox].cs:disabled+.lblnew::after { - box-shadow: none !important; - color: #748590; - cursor: not-allowed; -} - -.cs-checkbox input[type=checkbox].cs:disabled+.lbl::before, -.cs-checkbox input[type=radio].cs:disabled+.lbl::before { - box-shadow: none !important; - color: #748590; - cursor: default; -} - -.cs-checkbox label { - margin: 0px; -} - -.cs-checkbox .cs { - margin: 0px; -} - -.cs-checkbox input[type=radio].cs+.lbl:before { - -webkit-border-radius: 50% !important; - -moz-border-radius: 50% !important; - border-radius: 50% !important; - -webkit-background-clip: padding-box !important; - -moz-background-clip: padding !important; - background-clip: padding-box !important; - height: 14px !important; - min-width: 14px !important; - font-size: 5px !important; - content: "\a0"; - top: -3px !important; - border: 1px solid #dfeaec; -} - -.cs-checkbox input[type=radio].cs:checked+.lbl::before { - content: "\f111" !important; - border: 1px solid #25c2a3; - background: transparent !important; - color: #25c2a3 !important; -} - -.cs-checkbox input[type=radio].cs:hover+span:before { - border: 1px solid #dfeaec; - color: #748590; - content: "\f111" !important; -} - -.cs-checkbox input[type=radio].cs:disabled+.lbl::before { - border-color: #748590 !important; -} - -.cs-checkbox input[type=checkbox].cs+.lblnew::after { - cursor: pointer; - font-family: fontAwesome; - font-weight: 400; - font-size: 12px; - color: #25c2a3; - content: "\a0"; - background-color: #dfeaec; - border-radius: 0; - display: inline-block; - text-align: center; - height: 15px; - line-height: 19px; - min-width: 15px; - position: relative; - top: 8px; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - float: right; - margin-top: 1.4px; -} - -/* Buttons */ - -.btn[disabled] { - cursor: default !important; - opacity: 0.65; -} - -.btn { - padding: 6px 20px; - cursor: pointer; - border-radius: 3px; - display: inline-block; - padding: 6px 12px; - font-size: 14px; - font-weight: 400; - line-height: 1.42857143; - text-align: center; - white-space: nowrap; - vertical-align: middle; - cursor: pointer; - border: 1px solid transparent; -} - -.btn i { - margin-right: 5px; -} - -.btn:focus, -.btn:hover, -.btn:active { - outline: 0px !important; - -webkit-box-shadow: none; - -moz-box-shadow: none; - -ms-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; -} - -.btn.btn-large-90 { - min-width: 90px; -} - -.btn.disabled { - background: #f5fbfc; - color: #c4d1d5; - border-color: #edf1f2; -} - -.cs-btn-success { - background-color: #25c2a3; - color: #ffffff; -} - -.cs-btn-success:hover, -.cs-btn-success:focus { - background-color: #25bd9f; - color: #ffffff; -} - -.cs-btn-success .icon-external-link { - vertical-align: text-bottom; -} - -.cs-btn-error { - background-color: #DA384C; - color: #ffffff; -} - -.cs-btn-error:hover, -.cs-btn-error:focus { - background-color: #d84355; - color: #ffffff; -} - -.cs-btn-warning { - background-color: #f6686a; - color: #ffffff; -} - -.cs-btn-warning i { - margin: 0px; - color: #ffffff; -} - -.cs-btn-warning:hover { - background-color: #f06567; -} - -.cs-btn-warning:hover i { - color: #ffffff; -} - -.cs-btn-transparent { - background-color: transparent; - color: #748590 !important; - margin-right: 0px; -} - -.cs-btn-primary { - border: 1px solid #d1dfe2; - background: #fff; - color: #748590 !important; - white-space: normal; -} - -.cs-btn-primary:hover { - color: #7f919d !important; - border-color: #c6d4d7; -} - -.cs-btn-primary .icon-external-link { - vertical-align: text-bottom; -} - -.cs-btn-circle { - border-radius: 30px; - border: 1px solid #25c2a3; - padding: 5px 15px; - position: relative; - color: #25c2a3; - background: #ffffff; -} - -/* Dynamic Width*/ - -.w-1 { - width: 1%; -} - -.w-2 { - width: 2%; -} - -.w-3 { - width: 3%; -} - -.w-4 { - width: 4%; -} - -.w-5 { - width: 5%; -} - -.w-6 { - width: 6%; -} - -.w-7 { - width: 7%; -} - -.w-8 { - width: 8%; -} - -.w-9 { - width: 9%; -} - -.w-10 { - width: 10%; -} - -.w-11 { - width: 11%; -} - -.w-12 { - width: 12%; -} - -.w-13 { - width: 13%; -} - -.w-14 { - width: 14%; -} - -.w-15 { - width: 15%; -} - -.w-16 { - width: 16%; -} - -.w-17 { - width: 17%; -} - -.w-18 { - width: 18%; -} - -.w-19 { - width: 19%; -} - -.w-20 { - width: 20%; -} - -.w-21 { - width: 21%; -} - -.w-22 { - width: 22%; -} - -.w-23 { - width: 23%; -} - -.w-24 { - width: 24%; -} - -.w-25 { - width: 25%; -} - -.w-26 { - width: 26%; -} - -.w-27 { - width: 27%; -} - -.w-28 { - width: 28%; -} - -.w-29 { - width: 29%; -} - -.w-30 { - width: 30%; -} - -.w-31 { - width: 31%; -} - -.w-32 { - width: 32%; -} - -.w-33 { - width: 33%; -} - -.w-34 { - width: 34%; -} - -.w-35 { - width: 35%; -} - -.w-36 { - width: 36%; -} - -.w-37 { - width: 37%; -} - -.w-38 { - width: 38%; -} - -.w-39 { - width: 39%; -} - -.w-40 { - width: 40%; -} - -.w-41 { - width: 41%; -} - -.w-42 { - width: 42%; -} - -.w-43 { - width: 43%; -} - -.w-44 { - width: 44%; -} - -.w-45 { - width: 45%; -} - -.w-46 { - width: 46%; -} - -.w-47 { - width: 47%; -} - -.w-48 { - width: 48%; -} - -.w-49 { - width: 49%; -} - -.w-50 { - width: 50%; -} - -.w-51 { - width: 51%; -} - -.w-52 { - width: 52%; -} - -.w-53 { - width: 53%; -} - -.w-54 { - width: 54%; -} - -.w-55 { - width: 55%; -} - -.w-56 { - width: 56%; -} - -.w-57 { - width: 57%; -} - -.w-58 { - width: 58%; -} - -.w-59 { - width: 59%; -} - -.w-60 { - width: 60%; -} - -.w-61 { - width: 61%; -} - -.w-62 { - width: 62%; -} - -.w-63 { - width: 63%; -} - -.w-64 { - width: 64%; -} - -.w-65 { - width: 65%; -} - -.w-66 { - width: 66%; -} - -.w-67 { - width: 67%; -} - -.w-68 { - width: 68%; -} - -.w-69 { - width: 69%; -} - -.w-70 { - width: 70%; -} - -.w-71 { - width: 71%; -} - -.w-72 { - width: 72%; -} - -.w-73 { - width: 73%; -} - -.w-74 { - width: 74%; -} - -.w-75 { - width: 75%; -} - -.w-76 { - width: 76%; -} - -.w-77 { - width: 77%; -} - -.w-78 { - width: 78%; -} - -.w-79 { - width: 79%; -} - -.w-80 { - width: 80%; -} - -.w-81 { - width: 81%; -} - -.w-82 { - width: 82%; -} - -.w-83 { - width: 83%; -} - -.w-84 { - width: 84%; -} - -.w-85 { - width: 85%; -} - -.w-86 { - width: 86%; -} - -.w-87 { - width: 87%; -} - -.w-88 { - width: 88%; -} - -.w-89 { - width: 89%; -} - -.w-90 { - width: 90%; -} - -.w-91 { - width: 91%; -} - -.w-92 { - width: 92%; -} - -.w-93 { - width: 93%; -} - -.w-94 { - width: 94%; -} - -.w-95 { - width: 95%; -} - -.w-96 { - width: 96%; -} - -.w-97 { - width: 97%; -} - -.w-98 { - width: 98%; -} - -.w-99 { - width: 99%; -} - -.w-100 { - width: 100%; -} - -/*Table*/ - -.cs-table .cs-table-top-header, -.cs-table .cs-table-bottom-bar { - -webkit-border-radius: 6px 6px 0px 0px; - -moz-border-radius: 6px 6px 0px 0px; - border-radius: 6px 6px 0px 0px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - background-color: #fff; - border: 1px solid #e8e8e9; - border-bottom: 0px; - height: 65px; - padding: 16px 15px; -} - -.cs-table .cs-table-top-header .cs-pagination, -.cs-table .cs-table-bottom-bar .cs-pagination { - margin-top: 5px; -} - -.cs-table .cs-table-top-header .cs-form-group.search-box .cs-text-box, -.cs-table .cs-table-bottom-bar .cs-form-group.search-box .cs-text-box { - padding-left: 0; - margin-left: 22px; - width: 100%; - background-color: #fff; -} - -.cs-table .cs-table-top-header .cs-form-group.search-box button, -.cs-table .cs-table-bottom-bar .cs-form-group.search-box button { - position: absolute; -} - -.cs-table .cs-table-bottom-bar { - float: left; - width: 100%; - border: 1px solid #e8e8e9; - border-top: 0px; - -webkit-border-radius: 0px 0px 6px 6px; - -moz-border-radius: 0px 0px 6px 6px; - border-radius: 0px 0px 6px 6px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.cs-table .cs-table-bottom-bar .dropdown-menu { - z-index: 9999 !important; -} - -.cs-table .cs-table-head { - background-color: #f3f7f8; - border: 1px solid #e8e8e9; - border-top: 0px; - border-bottom: 0px; -} - -.cs-table .cs-table-head .table-cell { - font-weight: bold; - color: #4f6471; - padding: 19px 10px 19px 15px; - font-size: 12px; - text-transform: uppercase; - font-family: proximaNovaSemiBold; -} - -.cs-table .cs-table-head .table-cell i { - float: right; - position: relative; -} - -.cs-table .cs-table-body { - background-color: #fff; - border: 1px solid #e8e8e9; - border-top: 0px; - border-bottom: 0px; - min-height: 197px; - position: relative; -} - -.cs-table .cs-table-body .table-cell { - color: #748590; - padding: 20px 15px; -} - -.cs-table .cs-table-body .table-cell .key { - color: #bebebe; -} - -.cs-table .cs-table-body .table-cell .updated-at { - font-size: 12px; - color: #aabac4; - line-height: 14px; -} - -.cs-table .table-row { - clear: both; - display: flex; - position: relative; - flex-wrap: wrap; -} - -.cs-table .table-row .icon-ellipsis-v { - display: none; - cursor: pointer; - position: absolute; - right: 0px; - color: #aabac5; -} - -.cs-table .table-row .icon-ellipsis-v:hover { - color: #63747f; -} - -.cs-table .table-row:hover { - background: #f5fbfc; -} - -.cs-table .table-row:hover i.icon-ellipsis-v { - display: block; -} - -.cs-table .table-row .action-button-icon { - position: absolute; - right: 18px; - top: 22px; -} - -.cs-table .table-row .action-button-icon i.icon-ellipsis-v { - font-size: 17px; -} - -.cs-table .table-row:before, -.cs-table .table-row:after { - content: ""; - display: table; -} - -.cs-table .table-row:after { - clear: both; -} - -.cs-table .table-row>a { - flex: 1 0 100%; - display: flex; -} - -.cs-table .table-row .shrink-row { - border-bottom: 1px solid #edf1f2; - width: 100%; - padding-left: 22px; -} - -.cs-table .table-cell { - float: left; - font-size: 14px; - word-wrap: break-word; -} - -.cs-table .table-cell:last-child { - border-right: 0px; -} - -.cs-table ul { - float: left; - width: 100%; -} - -/* Pagination */ - -.cs-pagination .pagination-prev, -.cs-pagination .pagination-next { - background-color: #ffffff; - border: 1px solid #e8e8e9; - float: left; - text-align: center; - vertical-align: middle; - cursor: pointer; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.cs-pagination .pagination-prev i, -.cs-pagination .pagination-next i { - font-size: 10px; - color: #63747f; - display: table-cell; - height: 22px; - width: 22px; - vertical-align: middle; -} - -.cs-pagination .pagination-prev.disable, -.cs-pagination .pagination-next.disable { - background-color: #fff; - cursor: default !important; -} - -.cs-pagination .pagination-prev.disable i, -.cs-pagination .pagination-next.disable i { - color: #aabac4; -} - -@media screen and (-ms-high-contrast: active), -(-ms-high-contrast: none) { - .cs-pagination .pagination-prev i, - .cs-pagination .pagination-next i { - height: 23px; - } -} - -.cs-pagination .pagination-prev { - margin: 0px 5px; -} - -.cs-pagination .dropdown { - float: left; - background-color: #fff; - border: 1px solid #e8e8e9; - cursor: pointer; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.cs-pagination .dropdown .selected { - padding: 2px 6px; -} - -.cs-pagination .dropdown .selected span { - color: #25c2a3; - font-size: 12px; - margin: 0 8px 0px 5px; -} - -.cs-pagination .dropdown .selected i { - font-size: 10px; - color: #787981; -} - -.cs-pagination .dropdown.no-pagination { - cursor: default !important; -} - -.cs-pagination .dropdown.no-pagination i { - display: none; -} - -.cs-pagination .dropdown.no-pagination .dropdown-menu { - display: none !important; -} - -.cs-pagination .dropdown.no-pagination .dropdown-toggle { - cursor: default; -} - -.cs-pagination .dropdown .dropdown-menu { - min-width: 50px; - border: 1px solid #e8e8e9; - top: 50%; - padding: 0; - left: -4px; - overflow: auto; - z-index: 10; - overflow-y: auto; - max-height: 160px; - -webkit-box-shadow: none; - -moz-box-shadow: none; - -ms-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; -} - -.cs-pagination .dropdown .dropdown-menu.upper-pagination { - top: -3px; -} - -.cs-pagination .dropdown .dropdown-menu::-webkit-scrollbar-track { - border-radius: 10px; - background-color: transparent; -} - -.cs-pagination .dropdown .dropdown-menu::-webkit-scrollbar { - width: 6px; - background-color: transparent; -} - -.cs-pagination .dropdown .dropdown-menu::-webkit-scrollbar-thumb { - border-radius: 6px; - background-color: #dfe2e9; -} - -.cs-pagination .dropdown .dropdown-menu li { - cursor: pointer; - padding: 5px 0px; - text-align: center; -} - -.cs-pagination .dropdown .dropdown-menu li:hover { - background-color: #f5f5f5; -} - -.cs-pagination .dropdown .dropdown-menu li.selected-option { - color: #25c2a3; -} - -.cs-pagination .result { - float: left; - margin: 0px 20px 0px; - font-style: italic; - line-height: 24px; - margin-top: 2px; - color: #748590; -} - -.cs-pagination .result label { - display: initial; -} - -.cs-pagination .result .font-semi-bold { - color: #4f6471; - margin-right: 4px; -} - -.cs-pagination .filter, -.cs-pagination .refresh, -.cs-pagination .cancel-search { - float: left; - padding: 0px 15px; - border-right: 1px solid #e2e2e2; - height: 20px; - line-height: 24px; - margin-top: 2px; - color: #63747f; -} - -.cs-pagination .filter i, -.cs-pagination .refresh i, -.cs-pagination .cancel-search i { - margin-right: 6px; - font-size: 14px; - cursor: pointer; -} - -.cs-pagination .filter label, -.cs-pagination .refresh label, -.cs-pagination .cancel-search label { - font-size: 14px; -} - -/*Tags*/ - -.cs-tags { - padding: 0px 5px; - background-color: #f3f7f8; - margin: 0 2.5px 5px; - float: left; - vertical-align: middle; - border: 1px solid #e8eced; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - color: #aabac4; -} - -.cs-tags span { - text-overflow: ellipsis; - overflow: hidden; - max-width: 80px; - white-space: nowrap; -} - -.cs-tags .title { - font-family: proximaNovaSemiBold; - float: left; - margin: 0px 5px; -} - -.cs-tags .value { - float: left; -} - -.cs-tags i { - color: #748590; - display: inline-block; - cursor: pointer; - margin: 0px 5px 0px 10px; - font-size: 12px; -} - -.cs-tags:hover { - background-color: #f3f7f8; -} - -.drag-icon { - width: 7px; - height: 19px; - background-position: -5px -218px; - position: absolute; - left: 0; - cursor: move; - display: inline-block; - background-image: url(https://app.contentstack.com/static/images/cs-icons-v2.png); - float: left; - visibility: hidden; -} - -.minus-sign { - display: inline-block; - width: 15px; - height: 15px; - vertical-align: sub; - cursor: pointer; - margin-left: 2px; - background-image: url(https://app.contentstack.com/static/images/minus@2x.png); - background-size: 15px 15px; - background-repeat: no-repeat; -} - -.plus-sign { - display: inline-block; - width: 15px; - height: 15px; - vertical-align: sub; - cursor: pointer; - margin-left: 2px; - background-image: url(https://app.contentstack.com/static/images/plus@2x.png); - background-size: 15px 15px; - background-repeat: no-repeat; -} - -.reference-loading { - width: 50%; -} - -.reference-loading .loader, -.reference-loading .loader:before, -.reference-loading .loader:after { - border-radius: 50%; - width: 1.3em; - height: 1.3em; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; - -webkit-animation: load7 1.8s infinite ease-in-out; - animation: load7 1.8s infinite ease-in-out; -} - -.reference-loading .loader { - color: #25c2a3; - font-size: 10px; - position: relative; - text-indent: -9999em; - -webkit-transform: translateZ(0); - -ms-transform: translateZ(0); - transform: translateZ(0); - -webkit-animation-delay: -0.16s; - animation-delay: -0.16s; - top: -20px; - margin-left: 6%; -} - -.reference-loading .loader:before, -.reference-loading .loader:after { - content: ''; - position: absolute; - top: 0; -} - -.reference-loading .loader:before { - left: -2.5em; - -webkit-animation-delay: -0.32s; - animation-delay: -0.32s; -} - -.reference-loading .loader:after { - left: 2.5em; -} - -.reference-loading { - display: inline-block; - margin-left: 50px; -} - -@-webkit-keyframes load7 { - 0%, - 80%, - 100% { - box-shadow: 0 2.5em 0 -1.3em; - } - 40% { - box-shadow: 0 2.5em 0 0; - } -} - -@keyframes load7 { - 0%, - 80%, - 100% { - box-shadow: 0 2.5em 0 -1.3em; - } - 40% { - box-shadow: 0 2.5em 0 0; - } -} - -.reference-loading .loading { - text-align: center; - margin: 20px auto; -} - -.reference-loading .loading-flash div { - border-radius: 50%; - height: 10px; - width: 10px; - display: inline-block; - box-sizing: border-box; - background: #25c2a3; -} - -.reference-loading .loading-flash div:nth-of-type(4) { - animation: flash 0.4s 0.5s ease-in-out infinite; -} - -.reference-loading .loading-flash div:nth-of-type(3) { - animation: flash 0.4s 0.2s linear infinite; -} - -.reference-loading .loading-flash div:nth-of-type(2) { - animation: flash 0.4s -0.1s linear infinite; -} - -.reference-loading .loading-flash div:nth-of-type(1) { - animation: flash 0.4s -0.4s linear infinite; -} - -@keyframes flash { - 0% { - opacity: 0; - } - 50% { - opacity: 0.5; - } - 100% { - opacity: 1; - } -} \ No newline at end of file diff --git a/dist/ui-extension-sdk.js b/dist/ui-extension-sdk.js deleted file mode 100644 index ae23093e..00000000 --- a/dist/ui-extension-sdk.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ContentstackUIExtension=t():e.ContentstackUIExtension=t()}(self,(function(){return(()=>{"use strict";var e={713:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=e.resolved,n=void 0!==t&&t;return n?this._resolvedData:this._data}},{key:"setFocus",value:function(){return this._connection.sendToParent("focus")}},{key:"onChange",value:function(e){var t=this;if(!e||"function"!=typeof e)throw Error("Callback must be a function");this._emitter.on("extensionFieldChange",(function(n){t._data=n.data,t._resolvedData=n.data,e(n.data)}))}}]),e}();t.default=o},386:(e,t,n)=>{var r=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]&&arguments[0];return e?"Assets":"Asset"}},{key:"getRteAssets",value:function(){return this.connection.sendToParent("stackQuery",{action:"getRteAssets"}).then(d).catch(l)}},{key:"getAssetsOfSpecificTypes",value:function(e){return e&&"string"==typeof e?this.connection.sendToParent("stackQuery",{action:"getAssetsOfSpecificTypes",asset_type:e}).then(d).catch(l):Promise.reject(new Error("Kindly provide valid parameters"))}},{key:"connection",get:function(){return f}}]),t}(u.default);t.default=function(e){return f=e,new Proxy(h,{apply:function(e,t,n){return new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t{Object.defineProperty(t,"__esModule",{value:!0});var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]&&arguments[0];return e?"Entries":"Entry"}},{key:"connection",get:function(){return f}},{key:"contentTypeUid",get:function(){return d}}]),t}(u.default);t.default=function(e,t){return f=e,d=t,new Proxy(l,{apply:function(e,t,n){var r=new(Function.prototype.bind.apply(e,[null].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t{Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return Promise.reject(new Error("uid is required"));var n={uid:e,params:t,action:"getContentType"};return this._connection.sendToParent("stackQuery",n).then(u).catch(s)}},{key:"getContentTypes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;n.query=e;var r={params:n,action:"getContentTypes"};return this._connection.sendToParent("stackQuery",r).then(u).catch(s)}},{key:"getEnvironment",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return Promise.reject(new Error("name is required"));var n={name:e,params:t,action:"getEnvironment"};return this._connection.sendToParent("stackQuery",n).then(u).catch(s)}},{key:"getEnvironments",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;n.query=e;var r={params:n,action:"getEnvironments"};return this._connection.sendToParent("stackQuery",r).then(u).catch(s)}},{key:"getLocale",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return Promise.reject(new Error("code is required"));var n={code:e,params:t,action:"getLocale"};return this._connection.sendToParent("stackQuery",n).then(u).catch(s)}},{key:"getLocales",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t;n.query=e;var r={params:n,action:"getLocales"};return this._connection.sendToParent("stackQuery",r).then(u).catch(s)}}]),e}();t.default=c},653:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.transform=function(e){return function(){switch(arguments.length){case 1:if(Array.isArray(arguments[0])||"string"==typeof arguments[0]){var t=this._query[e+"[BASE]"]||[];return t=t.concat(arguments[0]),this._query[e+"[BASE]"]=t,this}throw Error("Kindly provide valid parameters");case 2:if("string"==typeof arguments[0]&&(Array.isArray(arguments[1])||"string"==typeof arguments[1])){var n=this._query[e+"["+arguments[0]+"]"]||[];return n=n.concat(arguments[1]),this._query[e+"["+arguments[0]+"]"]=n,this}throw Error("Kindly provide valid parameters");default:throw Error("Kindly provide valid parameters")}}},t.merge=function(e,t){var n=e;return e&&t&&Object.keys(t).forEach((function(e){n[e]=t[e]})),n},t.mergeDeep=function(e,t){var n=e,r=this;return function e(t,n){var o=t;Object.keys(n).forEach((function(t){"object"===r._type(n[t])&&r._type(o[t])===r._type(n[t])?e(o[t],n[t]):"array"===r._type(n[t])&&r._type(o[t])===r._type(n[t])?o[t]=o[t].concat(n[t]):o[t]=n[t]}))}(n,t),n},t._type=function(e){var t=void 0===e?"undefined":n(e);return"object"===t&&Array.isArray(e)&&(t="array"),t},t.addParam=function(e,t){if(e&&"string"==typeof e&&t&&"string"==typeof t)return this._query[e]=t,this;throw Error("Kindly provide valid parameters.")},t.addQuery=function(e,t){if(e&&t&&"string"==typeof e)return this._query[e]=t,this;throw Error("First argument should be a String.")},t.language=function(e){if(e&&"string"==typeof e)return this._query.locale=e,this;throw Error("Argument should be a String.")},t.environment=function(e){if(e&&"string"==typeof e)return this._query.environment=e,this;throw Error("Argument should be a String.")},t.includeOwner=function(){return this._query.include_owner=!0,this},t.includeContentType=function(){return this._query.include_content_type=!0,this},t.includeSchema=function(){return this._query.include_schema=!0,this},t.includeReference=function(e){if(Array.isArray(e))for(var t=0;t{Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var n=0;n{Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var n=0;n3&&void 0!==arguments[3]?arguments[3]:"half_width";r(this,e),this._connection=t,this._autoResizingEnabled=!1,this._resizingEnabled=!1,this.type=n,this.state=i,this._emitter=o}return n(e,[{key:"enableResizing",value:function(){return"DASHBOARD"!==this.type?Promise.resolve():(this._resizingEnabled=!0,this._connection.sendToParent("window",{action:"enableResizing"}))}},{key:"onDashboardResize",value:function(e){var t=this;if("DASHBOARD"!==this.type)return!1;if(!e||"function"!=typeof e)throw Error("Callback must be a function");return t._emitter.on("dashboardResize",(function(n){t.state=n.state,e(n.state)})),!0}},{key:"updateHeight",value:function(e){if("DASHBOARD"===this.type&&"half_width"===this.state)return Promise.resolve();if(!e||isNaN(e))this._height=Math.ceil(document.documentElement.getBoundingClientRect().height);else{if(this._height===e)return Promise.resolve();this._height=e}return this._connection.sendToParent("resize",this._height)}},{key:"enableAutoResizing",value:function(){return this._autoResizingEnabled||"half_width"===this.state&&"DASHBOARD"===this.type||(this._autoResizingEnabled=!0,(i=new MutationObserver(this.updateHeight.bind(this))).observe(window.document.body,o)),this}},{key:"disableAutoResizing",value:function(){return this._autoResizingEnabled?(this._autoResizingEnabled=!1,i.disconnect(),this):this}}]),e}();t.default=a},263:(e,t,n)=>{e.exports=n(386).default},967:(e,t,n)=>{var r,o,i;e=n.nmd(e);var a,u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};"undefined"!=typeof self&&self,a=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="./src/index.js")}({"./node_modules/cross-domain-utils/src/index.js":function(e,t,n){var r=n("./node_modules/cross-domain-utils/src/utils.js");n.d(t,"getActualDomain",(function(){return r.a})),n.d(t,"getAncestor",(function(){return r.b})),n.d(t,"getDomain",(function(){return r.c})),n.d(t,"getUserAgent",(function(){return r.d})),n.d(t,"isActuallySameDomain",(function(){return r.e})),n.d(t,"isAncestor",(function(){return r.f})),n.d(t,"isIframe",(function(){return r.g})),n.d(t,"isPopup",(function(){return r.h})),n.d(t,"isWindow",(function(){return r.i})),n.d(t,"isWindowClosed",(function(){return r.j})),n.d(t,"matchDomain",(function(){return r.k})),n.d(t,"stringifyDomainPattern",(function(){return r.l}));var o=n("./node_modules/cross-domain-utils/src/types.js");n.n(o)},"./node_modules/cross-domain-utils/src/types.js":function(e,t){},"./node_modules/cross-domain-utils/src/utils.js":function(e,t,n){function r(e){return"[object RegExp]"===Object.prototype.toString.call(e)}t.a=f,t.c=d,t.e=l,t.j=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];try{if(e===window)return!1}catch(e){return!0}try{if(!e)return!0}catch(e){return!0}try{if(e.closed)return!0}catch(e){return!e||e.message!==i}if(t&&function(e){if(!l(e))return!1;try{if(e===window)return!0;if(a(e)&&c(e))return!0;if(d(window)===d(e))return!0}catch(e){}return!1}(e))try{if(e.mockclosed)return!0}catch(e){}try{if(!e.parent||!e.top)return!0}catch(e){}var n=function(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:window).location.protocol===o.ABOUT_PROTOCOL}function u(e){if(e)try{if(e.parent&&e.parent!==e)return e.parent}catch(e){}}function s(e){if(e&&!u(e))try{return e.opener}catch(e){}}function c(e){try{return e&&e.location&&e.location.href,!0}catch(e){}return!1}function f(e){var t=(e=e||window).location;if(!t)throw new Error("Can not read window location");var n=t.protocol;if(!n)throw new Error("Can not read window protocol");if(n===o.FILE_PROTOCOL)return o.FILE_PROTOCOL+"//";if(n===o.ABOUT_PROTOCOL){var r=u(e);return r&&c(r)?f(r):o.ABOUT_PROTOCOL+"//"}var i=t.host;if(!i)throw new Error("Can not read window host");return n+"//"+i}function d(e){var t=f(e=e||window);return t&&e.mockDomain&&0===e.mockDomain.indexOf(o.MOCK_PROTOCOL)?e.mockDomain:t}function l(e){try{if(e===window)return!0}catch(e){}try{var t=Object.getOwnPropertyDescriptor(e,"location");if(t&&!1===t.enumerable)return!1}catch(e){}try{if(a(e)&&c(e))return!0}catch(e){}try{if(f(e)===f(window))return!0}catch(e){}return!1}function h(e,t){if(!e||!t)return!1;var n=u(t);return n?n===e:-1!==function(e){var t=[];try{for(;e.parent!==e;)t.push(e.parent),e=e.parent}catch(e){}return t}(t).indexOf(e)}function y(e){var t=[],n=void 0;try{n=e.frames}catch(t){n=e}var r=void 0;try{r=n.length}catch(e){}if(0===r)return t;if(r){for(var o=0;o>>0)+"__"+c,function(){if(!window.WeakMap)return!1;if(!window.Object.freeze)return!1;try{var e=new window.WeakMap,t={};return window.Object.freeze(t),e.set(t,"__testvalue__"),"__testvalue__"===e.get(t)}catch(e){return!1}}())try{this.weakmap=new window.WeakMap}catch(e){}this.keys=[],this.values=[]}return e.prototype._cleanupClosedWindows=function(){for(var e=this.weakmap,t=this.keys,n=0;n1&&void 0!==arguments[1]?arguments[1]:1;if(t>=3)return"stringifyError stack overflow";try{if(!e)return"";if("string"==typeof e)return e;if(e instanceof Error){var n=e&&e.stack,r=e&&e.message;if(n&&r)return-1!==n.indexOf(r)?n:r+"\n"+n;if(n)return n;if(r)return r}return"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e)}catch(e){return"Error while stringifying error: "+p(e,t+1)}}var v=function(e){if(!e)return e;var t=!1;return function(){if(!t)return t=!0,e.apply(this,arguments)}};function m(){}function _(){var e="0123456789abcdef";return"xxxxxxxxxx".replace(/./g,(function(){return e.charAt(Math.floor(Math.random()*e.length))}))}function w(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;if(n>=100)throw new Error("Self-referential object passed, or object contained too many layers");var r=void 0;if("object"!==(void 0===e?"undefined":y(e))||null===e||Array.isArray(e)){if(!Array.isArray(e))throw new TypeError("Invalid type: "+(void 0===e?"undefined":y(e)));r=[]}else r={};return function(e,t){Array.isArray(e)?function(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=_(),i=Object(o.isPopup)()?d.WINDOW_TYPES.POPUP:Object(o.isIframe)()?d.WINDOW_TYPES.IFRAME:d.WINDOW_TYPES.FULLPAGE,a=Object(o.getDomain)(window);return I({},t,n,{sourceDomain:a,id:t.id||r,windowType:i})}(e,t,{data:function(e,n,r){return w({obj:t.data},(function(t,r){return"function"==typeof t?j(e,n,t,r.toString()):t instanceof Error?(o=t,{__type__:d.SERIALIZATION_TYPES.ERROR,__message__:p(o),__code__:o.code}):window.Promise&&t instanceof window.Promise?function(e,t,n,r){return{__type__:d.SERIALIZATION_TYPES.PROMISE,__then__:j(e,t,(function(e,t){return n.then(e,t)}),r+".then")}}(e,n,t,r.toString()):O.isPromise(t)?function(e,t,n,r){return{__type__:d.SERIALIZATION_TYPES.ZALGO_PROMISE,__then__:j(e,t,(function(e,t){return n.then(e,t)}),r+".then")}}(e,n,t,r.toString()):g(t)?(i=t,{__type__:d.SERIALIZATION_TYPES.REGEX,__source__:i.source}):void 0;var o,i})).obj}(e,n),domain:n}),e===window&&!h.ALLOW_SAME_ORIGIN)throw new Error("Attemping to send message to self");if(Object(o.isWindowClosed)(e))throw new Error("Window is closed");var i=[],a=function(e,t,n){var r=void 0,o=void 0;try{if("{}"!==JSON.stringify({})&&(r=Object.prototype.toJSON,delete Object.prototype.toJSON),"{}"!==JSON.stringify({}))throw new Error("Can not correctly serialize JSON objects");if("[]"!==JSON.stringify([])&&(o=Array.prototype.toJSON,delete Array.prototype.toJSON),"[]"!==JSON.stringify([]))throw new Error("Can not correctly serialize JSON objects")}catch(e){throw new Error("Can not repair JSON.stringify: "+e.message)}var i=JSON.stringify.call(this,e,null,2);try{r&&(Object.prototype.toJSON=r),o&&(Array.prototype.toJSON=o)}catch(e){throw new Error("Can not repair JSON.stringify: "+e.message)}return i}(((r={})[d.WINDOW_PROPS.POSTROBOT]=t,r));return O.map(Object.keys(L),(function(t){return O.try((function(){if(!h.ALLOWED_POST_MESSAGE_METHODS[t])throw new Error("Strategy disallowed: "+t);return L[t](e,a,n)})).then((function(){return i.push(t+": success"),!0}),(function(e){return i.push(t+": "+p(e)+"\n"),!1}))})).then((function(e){var n=e.some(Boolean),r=t.type+" "+t.name+" "+(n?"success":"error")+":\n - "+i.join("\n - ")+"\n";if(!n)throw new Error(r)}))}))}function W(e){return S.responseListeners[e]}function q(e){delete S.responseListeners[e]}function M(e){return Boolean(S.erroredResponseListeners[e])}function N(e){var t=e.name,n=e.win,r=e.domain;if(n===d.WILDCARD&&(n=null),r===d.WILDCARD&&(r=null),!t)throw new Error("Name required to get request listener");var i=S.requestListeners[t];if(i)for(var a=0,u=[n,S.WINDOW_WILDCARD],s=null==u?0:u.length;a1&&void 0!==arguments[1]?arguments[1]:5e3,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Window",r=S.readyPromises.get(e);return r||(r=new O,S.readyPromises.set(e,r),-1!==t&&setTimeout((function(){return r.reject(new Error(n+" did not load after "+t+"ms"))}),t),r)}(a,e.timeout||h.CHILD_WINDOW_TIMEOUT)})).then((function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).origin;if(g(r)&&!e)return C(a)})).then((function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).origin;if(g(r)){if(!Object(o.matchDomain)(r,n))throw new Error("Remote window domain "+n+" does not match regex: "+r.toString());r=n}if("string"!=typeof r&&!Array.isArray(r))throw new TypeError("Expected domain to be a string or array");var i=r;return new O((function(n,r){var l=void 0;if(e.fireAndForget||function(e,t){S.responseListeners[e]=t}(u,l={name:t,window:a,domain:i,respond:function(e,t){e||(s=!0,c.splice(c.indexOf(f,1))),e?r(e):n(t)}}),x(a,{type:d.POST_MESSAGE_TYPE.REQUEST,hash:u,name:t,data:e.data,fireAndForget:e.fireAndForget},i).catch(r),e.fireAndForget)return n();var y=h.ACK_TIMEOUT,p=e.timeout||h.RES_TIMEOUT,v=100;setTimeout((function n(){if(!s){if(Object(o.isWindowClosed)(a))return l.ack?r(new Error("Window closed for "+t+" before response")):r(new Error("Window closed for "+t+" before ack"));if(y=Math.max(y-v,0),-1!==p&&(p=Math.max(p-v,0)),l.ack){if(-1===p)return;v=Math.min(p,2e3)}else{if(0===y)return r(new Error("No ack for postMessage "+t+" in "+Object(o.getDomain)()+" in "+h.ACK_TIMEOUT+"ms"));if(0===p)return r(new Error("No response for postMessage "+t+" in "+Object(o.getDomain)()+" in "+(e.timeout||h.RES_TIMEOUT)+"ms"))}setTimeout(n,v)}}),v)}))}));return f.catch((function(){!function(e){S.erroredResponseListeners[e]=!0}(u),q(u)})),c.push(f),f}))}function z(e,t,n,r){return(r=r||{}).window=e,r.name=t,r.data=n,B(r)}function Q(e,t,n){var r=Object(o.getAncestor)();return r?z(r,e,t,n):new O((function(e,t){return t(new Error("Window does not have a parent"))}))}function Y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!e.window)throw new Error("Expected options.window");var t=e.window;return{send:function(n,r){return z(t,n,r,e)}}}S.receivedMessages=S.receivedMessages||[],S.receiveMessage=F,S.requestPromises=S.requestPromises||new f,S.send=z;var J="function"==typeof Symbol&&"symbol"==u(Symbol.iterator)?function(e){return void 0===e?"undefined":u(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":u(e)};function Z(e){if(!e.name)throw new Error("Expected options.name");if(!e.handler)throw new Error("Expected options.handler");var t,n=e.name,r=e.window,i=e.domain,a={handler:e.handler,handleError:e.errorHandler||function(e){throw e},window:r,domain:i||d.WILDCARD,name:n},u=function e(t,n){var r=t.name,o=t.win,i=t.domain;if(!r||"string"!=typeof r)throw new Error("Name required to add request listener");if(Array.isArray(o)){for(var a=[],u=0,s=o,c=null==s?0:s.length;u1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2];"function"==typeof t&&(n=t,t={}),t=t||{},n=n||t.handler;var r=t.errorHandler,o=new O((function(o,i){(t=t||{}).name=e,t.once=!0,t.handler=function(e){if(o(e),n)return n(e)},t.errorHandler=function(e){if(i(e),r)return r(e)}})),i=Z(t);return o.cancel=i.cancel,o}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{on:function(t,n){return $(t,e,n)}}}function ee(){delete window[d.WINDOW_PROPS.POSTROBOT],window.removeEventListener("message",H)}S.on=$;var te=Object(o.getAncestor)();function ne(e){var t=S.requestPromises.get(e);if(t)for(var n=0,r=null==t?0:t.length;n{e.exports=n(967),e.exports.default=e.exports},78:(e,t,n)=>{var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(t){function i(){}var a=i.prototype,u=t.EventEmitter;function s(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function c(e){return function(){return this[e].apply(this,arguments)}}function f(e){return"function"==typeof e||e instanceof RegExp||!(!e||"object"!==(void 0===e?"undefined":o(e)))&&f(e.listener)}a.getListeners=function(e){var t,n,r=this._getEvents();if(e instanceof RegExp)for(n in t={},r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n]);else t=r[e]||(r[e]=[]);return t},a.flattenListeners=function(e){var t,n=[];for(t=0;t{e.exports=JSON.parse('{"name":"@contentstack/ui-extensions-sdk","version":"2.2.1","description":"The Extensions SDK allows you to extend Contentstack’s UI by helping you create Custom Fields, Custom Widgets, and Dashboard Widgets.","main":"dist/ui-extension-sdk.js","scripts":{"test":"karma start --single-run --browsers ChromeHeadless karma.conf.js","test-local":"karma start --single-run","generate:docs":"node_modules/.bin/jsdoc --configure .jsdoc.json --verbose","build":"npx webpack","generate:sri":"node ./subresourceIntegrity.js","generate:readme":"npm run generate:sri && npx @appnest/readme generate"},"keywords":["contentstack","contentstack-ui-extension-sdk","ui-extension-sdk"],"homepage":"https://github.com/contentstack/ui-extensions-sdk","author":"Contentstack (https://www.contentstack.com/)","bugs":{"url":"https://github.com/contentstack/ui-extensions-sdk/issues","email":"support@contentstack.com"},"repository":{"type":"git","url":"https://github.com/contentstack/ui-extensions-sdk.git"},"license":"MIT","devDependencies":{"@babel/cli":"^7.17.6","babel-eslint":"8.2.3","babel-loader":"7.1.4","babel-preset-env":"1.7.0","braces":"2.3.2","docdash":"1.0.2","eslint":"6.8.0","eslint-config-airbnb":"16.1.0","eslint-loader":"3.0.4","eslint-plugin-import":"2.12.0","inject-loader":"4.0.1","istanbul":"0.4.5","istanbul-instrumenter-loader":"3.0.1","jasmine":"3.3.0","jasmine-core":"2.99.0","jsdoc":"^3.6.10","jsdoc-to-markdown":"^7.1.1","jsonfile":"^6.1.0","karma":"^6.3.19","karma-chrome-launcher":"3.1.1","karma-coverage":"^2.2.0","karma-coverage-istanbul-reporter":"^3.0.3","karma-eslint":"2.2.0","karma-firefox-launcher":"1.1.0","karma-jasmine":"1.1.2","karma-jasmine-html-reporter":"0.2.2","karma-safari-applescript-launcher":"0.1.0","karma-sourcemap-loader":"0.3.7","karma-spec-reporter":"0.0.32","karma-summary-reporter":"1.5.2","karma-webpack":"^5.0.0","nyc":"14.1.1","ssri":"^9.0.0","webpack":"^5.70.0","webpack-cli":"^4.9.2","webpack-dev-server":"^4.7.4","webpack-shell-plugin-next":"^2.2.2"},"dependencies":{"post-robot":"8.0.29","wolfy87-eventemitter":"5.2.4"}}')}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={id:r,loaded:!1,exports:{}};return e[r](i,i.exports,n),i.loaded=!0,i.exports}return n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n(263)})()})); -//# sourceMappingURL=ui-extension-sdk.js.map \ No newline at end of file diff --git a/dist/ui-extension-sdk.js.map b/dist/ui-extension-sdk.js.map deleted file mode 100644 index 5613d5dc..00000000 --- a/dist/ui-extension-sdk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ui-extension-sdk.js","mappings":"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","sources":["webpack://ContentstackUIExtension/webpack/universalModuleDefinition","webpack://ContentstackUIExtension/./lib/entry.js","webpack://ContentstackUIExtension/./lib/extension.js","webpack://ContentstackUIExtension/./lib/field.js","webpack://ContentstackUIExtension/./lib/index.js","webpack://ContentstackUIExtension/./lib/stack/api/asset/index.js","webpack://ContentstackUIExtension/./lib/stack/api/base.js","webpack://ContentstackUIExtension/./lib/stack/api/content-type/entry.js","webpack://ContentstackUIExtension/./lib/stack/api/content-type/index.js","webpack://ContentstackUIExtension/./lib/stack/api/query.js","webpack://ContentstackUIExtension/./lib/stack/index.js","webpack://ContentstackUIExtension/./lib/stack/utils.js","webpack://ContentstackUIExtension/./lib/store.js","webpack://ContentstackUIExtension/./lib/window.js","webpack://ContentstackUIExtension/./webpack-entry.js","webpack://ContentstackUIExtension/./node_modules/post-robot/dist/post-robot.js","webpack://ContentstackUIExtension/./node_modules/post-robot/index.js","webpack://ContentstackUIExtension/./node_modules/wolfy87-eventemitter/EventEmitter.js","webpack://ContentstackUIExtension/webpack/bootstrap","webpack://ContentstackUIExtension/webpack/runtime/node module decorator","webpack://ContentstackUIExtension/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ContentstackUIExtension\"] = factory();\n\telse\n\t\troot[\"ContentstackUIExtension\"] = factory();\n})(self, function() {\nreturn ","import Field from './field.js';\n\n/** Class representing an entry from Contentstack UI. Not available for Dashboard Widget extension. */\n\nclass Entry {\n /**\n * @hideconstructor\n */\n constructor(initializationData, connection, emitter) {\n /**\n * Gets the content type of the current entry.\n * @type {Object}\n */\n this.content_type = initializationData.data.content_type;\n\n this._data = initializationData.data.entry;\n /**\n * Gets the locale of the current entry.\n * @type {string}\n */\n this.locale = initializationData.data.locale;\n\n this._connection = connection;\n\n this._emitter = emitter;\n\n const thisEntry = this;\n\n this._emitter.on('entrySave', (event) => {\n thisEntry._data = event.data;\n });\n\n this._emitter.on('entryChange', (event) => {\n thisEntry._changedData = event.data;\n });\n }\n\n /**\n * Gets data of the current entry.\n * @return {Object} Returns entry data.\n */\n\n getData() {\n return this._data;\n }\n\n\n /**\n * Gets the field object for the saved data, which allows you to interact with the field.\n * This object will have all the same methods and properties of extension.field.\n * Note: For fields initialized using the getFields function, the setData function currently works only for the following fields: as single_line, multi_line, RTE, markdown, select, number, boolean, date, link, and extension of data type text, number, boolean, and date.\n * @example\n * var field = entry.getField('field_uid');\n * var fieldSchema = field.schema;\n * var fieldUid = field.uid;\n * var fieldData = field.getData();\n * @param {string} uid Unique ID of the field\n * @return {Object} Field object\n */\n\n\n getField(uid) {\n const path = uid.split('.');\n let value = this._data;\n let schema = this.content_type.schema;\n\n const isDataEmpty = Object.keys(value).length === 0;\n\n if (isDataEmpty) {\n throw new Error('The data is unsaved. Save the data before requesting the field.');\n }\n\n try {\n let skipNext = false;\n let skipNextTwo = false;\n path.forEach((key, index) => {\n if (skipNext) {\n if (skipNextTwo) {\n skipNextTwo = false;\n } else {\n skipNext = false;\n }\n return;\n }\n\n schema = schema.find(x => x.uid === key);\n if (!schema) { throw Error('schema not found'); }\n\n console.log('mayhem', value);\n\n value = value[key];\n\n if ((schema.data_type === 'group' || schema.data_type === 'global_field') && schema.multiple === false\n && path.length !== (index + 1)) {\n schema = schema.schema;\n } else if ((schema.data_type === 'group' || schema.data_type === 'global_field') && schema.multiple === true\n && path.length !== (index + 1)) {\n schema = schema.schema;\n value = value[path[index + 1]];\n skipNext = true;\n } else if (schema.data_type === 'blocks' && path.length !== (index + 1)) {\n let blockId = Object.keys(value[path[index + 1]])[0];\n schema = schema.blocks.find(block => block.uid === blockId);\n if (path.length === index + 2) { // complete block value with uid\n value = value[path[index + 1]];\n } else { // block value without uid\n value = value[path[index + 1]][blockId];\n schema = schema.schema;\n }\n\n skipNext = true;\n skipNextTwo = true;\n }\n });\n } catch (e) {\n throw Error('Invalid uid, Field not found');\n }\n const fieldIntilaizationDataObject = {\n data: {\n uid, value, schema, data_type: schema.data_type\n }\n };\n const fieldObject = new Field(fieldIntilaizationDataObject, this._connection, this._emitter);\n delete fieldObject.onChange;\n return fieldObject;\n }\n\n /**\n * This function executes the callback function every time an entry is saved.\n * @param {function} callback The function to be called when an entry is saved.\n */\n\n\n onSave(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entrySave', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n\n /**\n * The field.onChange() function is called when another extension programmatically changes the data of the current extension field using the field.setData() function. This function is only available for extension fields that support the following data types: text, number, boolean, or date.\n * @param {function} callback The function to be called when an entry is edited/changed.\n */\n\n\n onChange(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entryChange', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n\n /**\n * The onPublish() function executes the callback function every time an entry has been published with the respective payload.\n * @param {function} callback The function to be called when an entry is published.\n */\n\n\n onPublish(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entryPublish', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n\n /**\n * The onUnPublish() function executes the callback function every time an entry has been unpublished with the respective payload.\n * @param {function} callback The function to be called when an entry is un published.\n */\n\n\n onUnPublish(callback) {\n const entryObj = this;\n if (callback && typeof (callback) === 'function') {\n entryObj._emitter.on('entryUnPublish', (event) => {\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n}\nexport default Entry;\n","import postRobot from 'post-robot';\nimport Field from './field.js';\nimport Window from './window.js';\nimport Stack from './stack';\nimport Entry from './entry.js';\nimport Store from './store.js';\nimport EventEmitter from 'wolfy87-eventemitter';\n\nconst emitter = new EventEmitter();\n\n/** Class representing an extension from Contentstack UI. */\n\nclass Extension {\n /**\n * @hideconstructor\n */\n constructor(initData) {\n const initializationData = initData;\n\n this.postRobot = postRobot;\n /**\n * This method gives you the configuration parameters. Check out our {@link https://www.contentstack.com/docs/guide/extensions|UI Extension documentation} .\n * @type {Object}\n */\n\n this.config = initializationData.data.config;\n /**\n * This object holds details of the current user.\n * @type {Object}\n */\n this.currentUser = initializationData.data.user;\n /**\n * type of extension, 'FIELD' || 'WIDGET' || 'DASHBOARD'.\n * @type {string}\n */\n this.type = initializationData.data.type || 'FIELD';\n\n\n if (this.type === 'FIELD') {\n /**\n * This method gives you the instance configuration parameters set from the content type builder page in the field settings. This is only available for the Custom Field extension.\n * @type {Object}\n */\n this.fieldConfig = initializationData.data.field_config;\n\n\n initializationData.data.self = true;\n /**\n * Gives you the extension field object which allows you to interact with the field. Only available for the Custom Field extension.\n * @type {Field}\n */\n this.field = new Field(initializationData, postRobot, emitter);\n }\n\n /**\n * Store to persist data for extension.\n * Note: Data is stored in the browser {@link external:localStorage} and will be lost if the {@link external:localStorage} is cleared in the browser.\n * @type {Store}\n */\n this.store = new Store(postRobot);\n\n if (this.type !== 'DASHBOARD') {\n /**\n * This gives you the entry object which allows you to interact with the current entry. Not available in case of the Dashboard Widget extension.\n * @type {Entry}\n */\n this.entry = new Entry(initializationData, postRobot, emitter);\n }\n\n\n if (this.type === 'FIELD' || this.type === 'DASHBOARD') {\n /**\n * The window object provides users with methods that allow them to adjust the size of the iframe that contains the extension. Not available in case of custom widgets.\n * @type {Window}\n */\n this.window = new Window(postRobot, this.type, emitter, initializationData.data.dashboard_width);\n }\n\n /**\n * This method returns stack object which allows users to read and manipulate a range of objects in a stack.\n * @type {Stack}\n */\n this.stack = new Stack(initializationData.data.stack, postRobot);\n\n postRobot.on('extensionEvent', (event) => {\n if (event.data.name === 'entrySave') {\n emitter.emitEvent('entrySave', [{ data: event.data.data }]);\n emitter.emitEvent('updateFields', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'entryChange') {\n emitter.emitEvent('entryChange', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'entryPublish') {\n emitter.emitEvent('entryPublish', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'entryUnPublish') {\n emitter.emitEvent('entryUnPublish', [{ data: event.data.data }]);\n }\n\n if (event.data.name === 'dashboardResize') {\n emitter.emitEvent('dashboardResize', [{ state: event.data.state }]);\n }\n\n if (event.data.name === 'extensionFieldChange') {\n emitter.emitEvent('extensionFieldChange', [{ data: event.data.data }]);\n }\n });\n }\n\n static initialize(version) {\n return postRobot.sendToParent('init', { version });\n }\n\n setReady() {\n return this.postRobot.sendToParent('ready');\n }\n}\n\n\nexport default Extension;\n","const excludedDataTypesForSetField = ['file', 'reference', 'blocks', 'group', 'global_field'];\n\nfunction separateResolvedData(field, value) {\n let resolvedData = value;\n let unResolvedData = value;\n if (field.data_type === 'file') {\n if (value) {\n resolvedData = value;\n unResolvedData = field.schema.multiple === true ?\n value.map(file => file.uid) :\n value.uid;\n } else if (field.schema.multiple === true) {\n resolvedData = [];\n unResolvedData = [];\n }\n }\n return { resolvedData, unResolvedData };\n}\n\n/** Class representing a field from Contentstack UI. Only available for Custom Field extension */\nclass Field {\n /**\n * @hideconstructor\n */\n constructor(fieldDataObject, connection, emitter) {\n /**\n * The UID of the current field is defined in the content type of the entry.\n * @type {string}\n */\n this.uid = fieldDataObject.data.uid;\n /**\n * The data type of the current field is set using this method.\n * @type {string}\n */\n this.data_type = fieldDataObject.data.schema.data_type;\n /**\n * The schema of the current field (schema of fields such as ‘Single Line Textbox’, ‘Number’,\n * and so on) is set using this method.\n * @type {Object}\n */\n this.schema = fieldDataObject.data.schema;\n this._emitter = emitter;\n\n let separatedData = separateResolvedData(this, fieldDataObject.data.value);\n\n this._data = separatedData.unResolvedData;\n\n this._resolvedData = separatedData.resolvedData;\n\n this._connection = connection;\n\n this._self = fieldDataObject.data.self || false;\n\n const fieldObj = this;\n\n emitter.on('updateFields', (event) => {\n const schemaPath = this._self && '$uid' in fieldObj.schema ? fieldObj.schema.$uid : fieldObj.uid;\n const path = schemaPath.split('.');\n\n let value = event.data;\n\n path.forEach((key) => {\n if (value) { value = value[key]; }\n });\n\n if (fieldObj._data !== value) {\n fieldObj._data = value;\n }\n });\n }\n\n /**\n * Sets the data for the current field.\n * @param {Object|string|number} data Data to be set on the field\n * @return {external:Promise} A promise object which is resolved when data is set for a field. Note: The data set by this function will only be saved when user saves the entry.\n */\n\n setData(data) {\n const currentFieldObj = this;\n const dataObj = { data, uid: currentFieldObj.uid, self: currentFieldObj._self };\n\n if (!currentFieldObj._self &&\n ((excludedDataTypesForSetField.indexOf(currentFieldObj.data_type) !== -1) ||\n !currentFieldObj.data_type)) { return Promise.reject(new Error('Cannot call set data for current field type')); }\n\n return this._connection.sendToParent('setData', dataObj).then(() => {\n this._data = data;\n return Promise.resolve(currentFieldObj);\n }).catch(e => Promise.reject(e));\n }\n\n /**\n * Gets the data of the current field\n * @param {Object} options Options object for get Data method.\n * @param {boolean} options.resolved If the resolved parameter is set to true for the File field, then the method will return a resolved asset object along with all the field metadata, e.g. 'field.getData({resolved:true})'.\n * @return {Object|string|number} Returns the field data.\n */\n getData({ resolved = false } = {}) {\n return resolved ? this._resolvedData : this._data;\n }\n\n /**\n * Sets the focus for a field when an extension is being used. This method shows user presence and highlights the extension field that the user is currently accessing in Contentstack UI.\n * @return {Object} A promise object which is resolved when Contentstack UI returns an acknowledgement of the focused state.\n */\n setFocus() {\n return this._connection.sendToParent('focus');\n }\n\n /**\n * This function is called when another extension programmatically changes data of this field using field.setData() function, only available for extension field, only support extensions of data type text, number, boolean or date.\n * @param {function} callback The function to be called when an entry is published.\n */\n onChange(callback) {\n const fieldObj = this;\n if (callback && typeof (callback) === 'function') {\n fieldObj._emitter.on('extensionFieldChange', (event) => {\n this._data = event.data;\n this._resolvedData = event.data;\n callback(event.data);\n });\n } else {\n throw Error('Callback must be a function');\n }\n }\n}\n\nexport default Field;\n","import Extension from './extension.js';\nimport postRobot from 'post-robot';\nimport { version } from '../package.json';\n\npostRobot.CONFIG.LOG_LEVEL = 'error';\n\n/** Class to initialize the plugin on Contentstack UI. */\n/**\n * @hideconstructor\n */\n\nclass ContentstackUIExtension {\n /**\n * You need to first include Contentstack UI Extensions SDK and\n * Contentstack UI Stylesheet in you HTML file and then call\n * ContentstackUIExtension.init in the script tag.\n * @example\n * HTML\n * \n * \n * @example Custom Field\n * // javascript\n * ContentstackUIExtension.init().then(function (extension) {\n * var value = extension.field.getData()\n * extension.field.setData(\"New Field Data\")\n * })\n * @example Custom Widget\n * // javascript\n * ContentstackUIExtension.init().then(function (extension) {\n * var entry = extension.entry.getData()\n * })\n * @example Dashboard Widget\n * // javascript\n * ContentstackUIExtension.init().then(function (extension) {\n * var stack = extension.stack;\n * var stackData = stack.getData();\n * })\n * @return {external:Promise} A promise object which will be resolved with an instance of the {@link Extension} class which is instantiated using the data received from the Contentstack UI.\n */\n static init() {\n if (this._extension) { return Promise.resolve(this._extension); }\n return Extension.initialize(version).then((initializationData) => {\n this._extension = new Extension(initializationData);\n return Promise.resolve(this._extension);\n }).catch((e) => Promise.reject(e));\n }\n\n\n /**\n * Version of Contentstack UI extension.\n * @type {string}\n */\n static get SDK_VERSION() {\n return version;\n }\n}\n\nexport default ContentstackUIExtension;\n","import Base from '../base.js';\nimport { getReferences, language, environment } from '../../utils.js';\n\nlet connection = {};\n\n/**\n * @summary Creates an instance of `Asset`.\n * @description An initializer is responsible for creating an Asset object.\n * @param {String} uid - uid of the asset\n * @example\n * let Asset = extension.stack.Asset('bltsomething123');\n * @returns {Asset}\n * @ignore\n */\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n\nclass Asset extends Base {\n constructor(uid) {\n super(uid);\n this.getReferences = getReferences;\n this.environment = environment;\n return this;\n }\n\n /**\n * @function\n * @name Stack#Asset.Query\n * @description This static method instantiates the query module for assets. To see the list of methods that can be used for querying assets, refer the {@link Query} module.\n * @example\n * let assetQuery = extension.stack.Asset.Query();\n * assetQuery.where(\"title\": \"main.js\").limit(10).skip(10).find().then(...).catch(...);\n * @return {Query}\n */\n\n\n static Query() {\n const entryQuery = super.Query();\n Object.assign(entryQuery, {\n language, environment\n });\n return entryQuery;\n }\n\n static module(plural = false) {\n return plural ? 'Assets' : 'Asset';\n }\n\n static get connection() {\n return connection;\n }\n\n /**\n * @function\n * @name Stack#Asset.getRteAssets\n * @description This static method retrieves comprehensive information on all assets uploaded through the Rich Text Editor field.\n * @return {external:Promise}\n */\n\n static getRteAssets() {\n return this.connection.sendToParent('stackQuery', { action: 'getRteAssets' }).then(onData).catch(onError);\n }\n\n /**\n * @function\n * @name Stack#Asset.getAssetsOfSpecificTypes\n * @description This static method retrieves assets that are either image or video files, based on the request query.\n * @param {String} assetType Type of asset to be received for e.g., ‘image/png’\n * @return {external:Promise}\n */\n static getAssetsOfSpecificTypes(assetType) {\n if (!assetType || typeof assetType !== 'string') {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.connection.sendToParent('stackQuery', { action: 'getAssetsOfSpecificTypes', asset_type: assetType }).then(onData).catch(onError);\n }\n\n\n /**\n * @name Stack#Asset#only\n * @function\n * @description This method is used to show the selected fields of the assets in the result set.\n * @param {String} [key=BASE] - Single field of an asset\n * @param {Array} values - Array of fields to be shown in the result set\n * @example\n * Only with the field UID \n * extension.stack.Asset('bltsomething123').only('title').fetch();\n * @example\n * Only with the field UID \n * extension.stack.Asset('bltsomething123').only('BASE','title').fetch();\n * @example\n * Only with the field UIDs(array) \n * extension.stack.Asset('bltsomething123').only(['title','description']).fetch();\n * @returns {Stack#Asset}\n */\n\n /**\n * @name Stack#Asset#except\n * @function\n * @description This method is used to hide the selected fields of the assets in result set.\n * @param {String} [key=BASE] - Single field of an asset\n * @param {Array} values - Array of fields to be hidden in the result set\n * @example\n * .Except with the field UID \n * extension.stack.Asset('bltsomething123').except('title').fetch();\n * @example\n * .Except with the field UID \n * extension.stack.Asset('bltsomething123').except('BASE','title').fetch();\n * @example\n * .Except with the field UIDs(array) \n * extension.stack.Asset('bltsomething123').except(['title','description']).fetch();\n * @returns {Stack#Asset}\n */\n\n /**\n * @function\n * @name Stack#Asset#environment\n * @description This method is used to set the environment name of which you want to retrieve the data.\n * @param {String} environment_uid - UID/Name of environment\n * @example extension.stack.Asset('bltsomething123').environment('development').fetch()\n * @returns {Stack#Asset}\n */\n\n\n /**\n This method includes a query parameter in your query.\n @name Stack#Asset#addParam\n @function\n @example extension.stack.Asset('uid').addParam('key', 'value').fetch().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Stack#Asset}\n */\n\n /**\n This method includes a query parameter in your query.\n @name Stack#Asset#addQuery\n @function\n @example extension.stack.Asset('uid').addQuery('key', 'value').fetch().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Stack#Asset}\n */\n\n\n /**\n This method will fetch the details of the entries and the assets in which the specified asset is referenced.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#get-all-references-of-asset|\n Asset References}\n @name Stack#Asset#getReferences\n @function\n @example extension.stack.Asset('uid').getReferences().then().catch();\n @return {external:Promise}\n */\n\n /**\n This method deletes an existing asset.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#delete-an-asset|\n Delete Asset}\n @name Stack#Asset#delete\n @function\n @example extension.stack.Asset('uid').delete().then().catch();\n @return {external:Promise}\n */\n\n\n /**\n * @name Stack#Asset#publish\n * @function\n * @description This method allows you to publish the asset either immediately or schedule the publish for a later date/time.\n * @param {object} payload - Payload for the request.\n * @example extension.stack.Asset('bltsomething123')\n .publish(\n {\n \"asset\": {\n \"locales\": [\n \"en-us\"\n ],\n \"environments\": [\n \"development\"\n ]\n },\n \"version\": 1,\n \"scheduled_at\": \"2019-02-08T18:30:00.000Z\"\n });\n * @return {external:Promise}\n */\n publish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch('publishAsset', payload);\n }\n\n /**\n * @function\n * @name Stack#Asset#unpublish\n * @description This method will instantly unpublish the asset, and also give you the provision to automatically unpublish the asset at a later date/time.\n * @param {object} payload - Payload for the request.\n * @example extension.stack.Asset('bltsomething123')\n .unpublish({\n \"asset\": {\n \"locales\": [\n \"en-us\"\n ],\n \"environments\": [\n \"development\"\n ]\n },\n \"version\": 1,\n \"scheduled_at\": \"2019-02-08T18:30:00.000Z\"\n });\n * @return {external:Promise}\n */\n unpublish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch('unpublishAsset', payload);\n }\n}\n\nexport default (uiConnection) => {\n connection = uiConnection;\n return new Proxy(Asset, {\n apply(Target, thisArg, argumentsList) {\n return new Target(...argumentsList);\n }\n });\n};\n","import Query from './query.js';\nimport { transform, addParam } from '../utils.js';\n\n\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n/**\n * This is Base class, it holds all the methods required for Modle instance,\n * eg ContentType('uid').delete() or Asset('uid').update({...})\n * @ignore\n */\nexport default class Base {\n constructor(uid) {\n if (!uid) { throw new Error('uid is required'); }\n this.uid = uid;\n this._query = {};\n this.only = transform('only');\n this.except = transform('except');\n this.addParam = addParam;\n }\n\n static Query() {\n return new Query(this.connection, this.module(true), this.contentTypeUid);\n }\n\n\n static create(payload) {\n const options = { payload, content_type_uid: this.contentTypeUid, action: `create${this.module()}` };\n return this.connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n update(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch(`update${this.constructor.module()}`, payload);\n }\n\n delete() {\n return this.fetch(`delete${this.constructor.module()}`);\n }\n\n fetch(action, payload) {\n const options = {\n payload,\n content_type_uid: this.constructor.contentTypeUid,\n uid: this.uid,\n params: this._query,\n action: action || `get${this.constructor.module()}`\n };\n\n if (!payload) { delete options.payload; }\n if (!this.constructor.contentTypeUid) { delete options.content_type_uid; }\n return this.constructor.connection.sendToParent('stackQuery', options)\n .then(onData).catch(onError);\n }\n}\n","import Base from '../base.js';\nimport { getReferences, addQuery, language, environment, includeOwner, includeContentType, includeSchema, includeReference } from '../../utils.js';\n\nlet connection = {};\nlet contentTypeUid = '';\n\n\nclass Entry extends Base {\n constructor(uid) {\n super(uid);\n this._query = {};\n return this;\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry.Query\n * @description This static method instantiates the query module for entries. To see the list of methods that can be used for querying entries, refer the {@link Query} module.\n * @example\n * let entryQuery = extension.stack.ContentType('content_type_uid').Entry.Query();\n * entryQuery.where(\"field_uid\": \"10\").limit(10).skip(10).find().then(...).catch(...);\n * @return {Query}\n */\n\n static Query() {\n const entryQuery = super.Query();\n Object.assign(entryQuery, {\n language, environment, includeOwner, includeContentType, includeSchema, includeReference\n });\n return entryQuery;\n }\n\n static get connection() {\n return connection;\n }\n\n static get contentTypeUid() {\n return contentTypeUid;\n }\n\n static module(plural = false) {\n return plural ? 'Entries' : 'Entry';\n }\n /**\n This method creates a new entry.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#create-a-an-entry|\n Create Entry}\n @name Stack#ContentType#Entry.create\n @function\n @example extension.stack.ContentType('content_type_uid').Entry.create({\n \"entry\": {\n \"title\": \"example\",\n \"url\": \"/example\"\n }\n }).then(...).catch(...);\n @param {Object} payload Data to create an entry\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n /**\n * @name Stack#ContentType#Entry#only\n * @function\n * @description This method is used to show the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be shown in the result set\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').only('title').fetch();\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').only('BASE','title').fetch();\n * @example\n * Only with field UIDs(array) \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').only(['title','description']).fetch();\n * @returns {Stack#ContentType#Entry}\n */\n\n /**\n * @name Stack#ContentType#Entry#except\n * @function\n * @description This method is used to hide the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be hidden in the result set\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').except('title').fetch();\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').except('BASE','title').fetch();\n * @example\n * Except with field uids(array) \n * extension.stack.ContentType('content_type_uid').Entry('bltsomething123').except(['title','description']).fetch();\n * @returns {Stack#ContentType#Entry}\n */\n\n /**\n * This method includes a query parameter in your query.\n * @name Stack#ContentType#Entry#addParam\n * @function\n * @example extension.stack.ContentType('content_type_uid').Entry('uid').addParam('include_count', 'true').fetch().then().catch();\n * @param {string} key - Key of the parameter\n * @param {string} value - Value of the parameter\n * @return {Stack#ContentType#Entry} Returns\n */\n\n\n /**\n This method will fetch all the entries in which the current entry is referenced.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#get-all-references-of-an-entry|\n Entry References}\n @name Stack#ContentType#Entry#getReferences\n @function\n @example extension.stack.ContentType('content_type_uid').Entry('uid').getReferences().then().catch();\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n\n /**\n @example extension.stack.ContentType('content_type_uid').Entry('uid').update({\"entry\" : {...}}).then().catch();\n @param {Object} payload Data to be update exsisting entry\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n\n /**\n This method deletes an existing entry.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#delete-an-entry|\n Delete Entry}\n @name Stack#ContentType#Entry#delete\n @function\n @example extension.stack.ContentType('content_type_uid').Entry('uid').delete().then().catch();\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n\n /**\n This method fetches information of a specific entry.\n @see {@link\n https://www.contentstack.com/docs/apis/content-management-api/#get-a-single-an-entry|\n Get A Single Entry}\n @name Stack#ContentType#Entry#fetch\n @function\n @example extension.stack.ContentType('content_type_uid').Entry('uid').fetch().then().catch();\n @return {external:Promise}\n Required data if resolved successfully\n */\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeReference\n * @description This method is used to include referenced entries from other content types.\n * @example\n * .includeReference with reference_field_uids as array \n * stack.ContentType('contenttype_uid').Entry('bltsomething123').includeReference(['category', 'author']).fetch()\n * @example\n * .includeReference with reference_field_uids \n * stack.ContentType('contenttype_uid').Entry('bltsomething123').includeReference('category', 'author').fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#language\n * @description This method is used to set the language code of which you want to retrieve the data.\n * @param {String} languageCode - Language code, for e.g. 'en-us', 'ja-jp', and so on\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').language('en-us').fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n /**\n * @function\n * @name Stack#ContentType#Entry#environment\n * @description This method is used to set the environment name of which you want to retrieve the data.\n * @param {String} environment_uid - UID/Name of environment\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').environment('development').fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#addQuery\n * @description This method is used to add a query to an entry object.\n * @param {String} key - Key of the query\n * @param {String} value - Value of the query\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').addQuery('include_schema',true).fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeSchema\n * @description This method is used to include the schema of the current contenttype in result set along with the entry/entries.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').includeSchema().fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeContentType\n * @description This method is used to include the current content type in the result set along with the entry(ies).\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').includeContentType().fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#includeOwner\n * @description This method is used to include the owner of the entry(ies) in the result set.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').includeOwner().fetch()\n * @returns {Stack#ContentType#Entry}\n */\n\n\n /**\n * @function\n * @name Stack#ContentType#Entry#getLanguages\n * @description This method returns the details of all the languages that an entry is localized in.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').getLanguages()\n * @return {external:Promise}\n */\n getLanguages() {\n return this.fetch('getEntryLanguages');\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#unlocalize\n * @description This method is used to unlocalize an entry\n * @param {string} locale Locale in which the entry has to be unlocalized\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').unlocalize('fr-fr').then(...).catch(...);\n * @return {external:Promise}\n */\n unlocalize(locale) {\n if (!locale || typeof locale !== 'string') {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query.locale = locale;\n return this.fetch('unlocalizeEntry');\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#publish\n * @description This method lets you publish an entry either immediately or schedule it to be published automatically at a later date/time.\n * @param {object} payload - Payload for the request\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').publish({\n \"entry\": {\n \"environments\": [\"development\"],\n \"locales\": [\"en-us\"]\n },\n \"locale\": \"en-us\",\n \"version\": 1,\n \"scheduled_at\": \"2019-02-14T18:30:00.000Z\"\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n publish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query = {};\n return this.fetch('publishEntry', payload);\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#unpublish\n * @description This method lets you publish an entry either immediately or schedule it to be published automatically at a later date/time.\n * @param {object} payload - Payload for the request\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').unpublish({\n \"entry\": {\n \"environments\": [\"development\"],\n \"locales\": [\"en-us\"]\n },\n \"locale\": \"en-us\",\n \"version\": 1,\n \"scheduled_at\": \"2019-02-14T18:30:00.000Z\"\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n unpublish(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query = {};\n return this.fetch('unpublishEntry', payload);\n }\n\n /**\n * @function\n * @name Stack#ContentType#Entry#setWorkflowStage\n * @description This method allows you to either set a particular workflow stage or update the workflow stage details of an entry.\n * @param {object} payload - Payload for the request\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').setWorkflowStage({\n \"workflow\": {\n \"workflow_stage\": {\n \"comment\": \"Test Comment\",\n \"due_date\": \"Thu Dec 01 2018\",\n \"notify\": false,\n \"uid\": \"blt9f52a2cd5e0014fb\",\n \"assigned_to\": [{\n \"uid\": \"blt296a22e28cc0c63c\",\n \"name\": \"John Doe\",\n \"email\": \"john.doe@contentstack.com\"\n }],\n \"assigned_by_roles\": [{\n \"uid\": \"blt5b74c24c7ae25d94\",\n \"name\": \"Content Manager\"\n }]\n }\n }\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n setWorkflowStage(payload) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n return this.fetch('setWorkflowStageEntry', payload);\n }\n\n /**\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#update-an-entry| Update Entry}\n * @name Stack#ContentType#Entry#update\n * @function\n * @description This call allows you to update entry content.\n * @param {object} payload - Payload for the request\n * @param {string} [locale] - Passing the ‘locale’ parameter will localize the entry in the specified locale\n * to be localized in the specified locale.\n * @example extension.stack.ContentType('contenttype_uid').Entry('bltsomething123').update(\n {\n \"entry\": {\n \"title\": \"example\",\n \"url\": \"/example\"\n }\n }).then(...).catch(...);\n * @return {external:Promise}\n */\n update(payload, locale) {\n if (!payload || (typeof payload !== 'object') || (payload instanceof Array)) {\n return Promise.reject(new Error('Kindly provide valid parameters'));\n }\n this._query.locale = locale;\n return this.fetch('updateEntry', payload);\n }\n}\n\nexport default (uiConnection, contentType) => {\n connection = uiConnection;\n contentTypeUid = contentType;\n return new Proxy(Entry, {\n apply(Target, thisArg, argumentsList) {\n const entryTarget = new Target(...argumentsList);\n Object.assign(entryTarget, {\n getReferences, addQuery, language, environment, includeOwner, includeContentType, includeSchema, includeReference\n });\n return entryTarget;\n }\n });\n};\n","import Entry from './entry.js';\nimport Base from '../base.js';\n\nlet connection = {};\n\n\nclass ContentType extends Base {\n constructor(uid) {\n super(uid);\n /**\n * @constructor\n * @hideconstructor\n * @name Stack#ContentType#Entry\n * @version 2.2.0\n * @desc An entry is the actual piece of content created using one of the defined content types\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#entries| Entries}\n */\n\n\n this.Entry = Entry(this.constructor.connection, this.uid);\n return this;\n }\n\n // static module(plural = false) {\n // return plural ? 'ContentTypes' : 'ContentType';\n // }\n static get connection() {\n return connection;\n }\n}\nexport default (uiConnection) => {\n connection = uiConnection;\n return new Proxy(ContentType, {\n // target = Foo\n apply(Target, thisArg, argumentsList) {\n return new Target(...argumentsList);\n }\n });\n};\n","import * as Utils from '../utils.js';\n\n\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n\nconst _extend = {\n compare(type) {\n return function (key, value) {\n if (key && value && typeof key === 'string' && typeof value !== 'undefined') {\n this._query.query[key] = this._query.query.file_size || {};\n this._query.query[key][type] = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n };\n },\n contained(bool) {\n const type = (bool) ? '$in' : '$nin';\n return function (key, value) {\n if (key && value && typeof key === 'string' && Array.isArray(value)) {\n this._query.query[key] = this._query.query[key] || {};\n this._query.query[key][type] = this._query.query[key][type] || [];\n this._query.query[key][type] = this._query.query[key][type].concat(value);\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n };\n },\n exists(bool) {\n return function (key) {\n if (key && typeof key === 'string') {\n this._query.query[key] = this._query.query[key] || {};\n this._query.query[key].$exists = bool;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n };\n },\n logical(type) {\n return function () {\n const _query = [];\n for (let i = 0, _i = arguments.length; i < _i; i += 1) {\n if (arguments[i] instanceof Query && arguments[i]._query.query) {\n _query.push(arguments[i]._query.query);\n } else if (typeof arguments[i] === 'object') {\n _query.push(arguments[i]);\n }\n }\n if (this._query.query[type]) {\n this._query.query[type] = this._query.query[type].concat(_query);\n } else {\n this._query.query[type] = _query;\n }\n return this;\n };\n },\n sort(type) {\n return function (key) {\n if (key && typeof key === 'string') {\n this._query[type] = key;\n return this;\n }\n throw Error('Argument should be a string.');\n };\n },\n pagination(type) {\n return function (value) {\n if (typeof value === 'number') {\n this._query[type] = value;\n return this;\n }\n throw Error('Argument should be a number.');\n };\n }\n};\n\n/**\n * Creates an instance of the query\n * @version 2.2.0\n * @hideconstructor\n */\nclass Query {\n constructor(connection, module, contentTypeUid) {\n this.module = module;\n this._connection = connection;\n this._query = {};\n this._query.query = this._query.query || {};\n this.contentTypeUid = contentTypeUid;\n /**\n * @name Query#only\n * @function\n * @description This method is used to show the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be shown in the result set\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry.Query().only('title').find();\n * @example\n * Only with field UID \n * extension.stack.ContentType('content_type_uid').Entry.Query().only('BASE','title').find();\n * @example\n * Only with field UIDs(array) \n * extension.stack.ContentType('content_type_uid').Entry.Query().only(['title','description']).find();\n * @returns {Query}\n */\n\n this.only = Utils.transform('only');\n\n /**\n * @name Query#except\n * @function\n * @description This method is used to hide the selected fields of an entry in the result set.\n * @param {String} [key=BASE] - Single field of an entry\n * @param {Array} values - Array of fields to be hidden in the result set\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry.Query().except('title').find();\n * @example\n * Except with field uid \n * extension.stack.ContentType('content_type_uid').Entry.Query().except('BASE','title').find();\n * @example\n * Except with field uids(array) \n * extension.stack.ContentType('content_type_uid').Entry.Query().except(['title','description']).find();\n * @returns {Query}\n */\n\n this.except = Utils.transform('except');\n /**\n This method includes a query parameter in your query.\n @name Query#addQuery\n @function\n @example extension.stack.ContentType('content_type_uid').Entry.Query().addQuery('key', 'value').find().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Query}\n */\n this.addQuery = Utils.addQuery;\n\n /**\n * @name Query#lessThan\n * @description This method provides only the entries with values less than the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').lessThan('created_at','2015-06-22')\n * @returns {Query}\n */\n this.lessThan = _extend.compare('$lt');\n\n /**\n * @name Query#lessThanOrEqualTo\n * @description This method provides only the entries with values less than or equal to the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').lessThanOrEqualTo('created_at','2015-03-12')\n * @returns {Query}\n */\n this.lessThanOrEqualTo = _extend.compare('$lte');\n /**\n * @function\n * @name Query#greaterThan\n * @description This method provides only the entrieswith values\n * greater than the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').greaterThan('created_at','2015-03-12')\n * @returns {Query}\n */\n this.greaterThan = _extend.compare('$gt');\n\n /**\n * @function\n * @name Query#greaterThanOrEqualTo\n * @description This method provides only the entries with values greater than or equal to the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').greaterThanOrEqualTo('created_at', '2015-06-22')\n * @returns {Query}\n */\n this.greaterThanOrEqualTo = _extend.compare('$gte');\n\n /**\n * @function\n * @name Query#notEqualTo\n * @description This method provides only the entries with values not equal to the specified value for a field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').notEqualTo('title','Demo')\n * @returns {Query}\n */\n this.notEqualTo = _extend.compare('$ne');\n\n /**\n * @function\n * @name Query#containedIn\n * @description This method provides only the entries with values matching the specified values for a field.\n * @param {String} key - UID of the field\n * @param {*} value - An array of values that are to be used to match or compare\n * @example extension.stack.ContentType('blog').containedIn('title', ['Demo', 'Welcome'])\n * @returns {Query}\n */\n this.containedIn = _extend.contained(true);\n\n /**\n * @function\n * @name Query#notContainedIn\n * @description This method provides only the entries that do not contain values matching the specified values for a field.\n * @param {String} key - UID of the field\n * @param {Array} value - An array of values that are to be used to match or compare\n * @example extension.stack.ContentType('blog').notContainedIn('title', ['Demo', 'Welcome'])\n * @returns {Query}\n */\n this.notContainedIn = _extend.contained(false);\n\n /**\n * @function\n * @name Query#exists\n * @description This method provides only the entries that contains the field matching the specified field UID.\n * @param {String} key - UID of the field\n * @example extension.stack.ContentType('blog').exists('featured')\n * @returns {Query}\n */\n this.exists = _extend.exists(true);\n\n /**\n * @function\n * @name Query#notExists\n * @description This method provides only the entries that do not contain the field matching the specified field UID.\n * @param {String} key - UID of the field\n * @example extension.stack.ContentType('blog').notExists('featured')\n * @returns {Query}\n */\n this.notExists = _extend.exists(false);\n\n /**\n * @function\n * @name Query#ascending\n * @description This parameter sorts the entries in ascending order on the basis of the value of the specified field.\n * @param {String} key - Field UID to be used for sorting.\n * @example extension.stack.ContentType('blog').ascending('created_at')\n * @returns {Query}\n */\n this.ascending = _extend.sort('asc');\n\n /**\n * @function\n * @name Query#descending\n * @description This method sorts the entries in descending order on the basis of the specified field.\n * @param {String} key - Field UID to be used for sorting\n * @example extension.stack.ContentType('blog').descending('created_at')\n * @returns {Query}\n */\n this.descending = _extend.sort('desc');\n\n /**\n * @function\n * @name Query#beforeUid\n * @description This method provides only the entries that are placed before the specified entry ID.\n * @param {String} uid - UID of the entry\n * @example extension.stack.ContentType('blog').beforeUid('blt1234567890abcdef')\n * @returns {Query}\n * @ignore\n */\n this.beforeUid = _extend.sort('before_uid');\n\n /**\n * @function\n * @name Query#afterUid\n * @description This method provides only the entries that are placed after the specified entry ID.\n * @param {String} uid - UID of the entry\n * @example extension.stack.ContentType('blog').afterUid('blt1234567890abcdef')\n * @returns {Query}\n * @ignore\n */\n this.afterUid = _extend.sort('after_uid');\n\n /**\n * @function\n * @name Query#skip\n * @description This method skips the specified number of entries.\n * @param {Number} skip - Number of entries to be skipped\n * @example extension.stack.ContentType('blog').skip(5)\n * @returns {Query}\n */\n this.skip = _extend.pagination('skip');\n\n /**\n * @function\n * @name Query#limit\n * @description This method limits the response by providing only the specified number of entries.\n * @param {Number} limit - Maximum number of entries to be returned in the result.\n * @example extension.stack.ContentType('blog').limit(10)\n * @returns {Query}\n */\n this.limit = _extend.pagination('limit');\n\n /**\n * @function\n * @name Query#or\n * @description This method performs the OR operation on the specified query objects and provides only the matching entries.\n * @param {object} Array of query objects/raw queries\n * to be taken into consideration\n * @example\n * OR with query instances\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo')\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10)\n * let blogQuery = extension.stack.ContentType('blog').or(Query1, Query2)\n * @example\n * OR with query instances\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo').getQuery()\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10).getQuery()\n * let blogQuery = extension.stack.ContentType('blog').or(Query1, Query2)\n * @returns {Query}\n */\n this.or = _extend.logical('$or');\n\n /**\n * @function\n * @name Query#and\n * @description This method performs the AND operation on the specified query objects and provides only the matching entries.\n * @param {object} Array of query objects/raw queries to be taken into consideration\n * @example\n * AND with raw queries\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo');\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10);\n * let blogQuery = extension.stack.ContentType('blog').and(Query1, Query2)\n * @example\n * .and with raw queries\n * let Query1 = extension.stack.ContentType('blog').Entry.Query().where('title', 'Demo').getQuery();\n * let Query2 = extension.stack.ContentType('blog').Entry.Query().lessThan('comments', 10).getQuery();\n * let blogQuery = extension.stack.ContentType('blog').and(Query1, Query2)\n * @returns {Query}\n */\n this.and = _extend.logical('$and');\n /**\n This method includes a query parameter in your query.\n @name Query#addParam\n @function\n @example extension.stack.ContentType('content_type_uid').Entry.Query().addParam('key', 'value').find().then().catch();\n @param {string} key - Key of the parammeter\n @param {string} value - Value of the parammeter\n @return {Query}\n */\n this.addParam = Utils.addParam;\n }\n\n // -------------------------------------Entry Queries--------------------------------------------------\n /**\n * @function\n * @name Query#includeReference\n * @description This method is used to include referenced entries from other content types. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example\n * .includeReference with reference_field_uids as array \n * stack.ContentType('contenttype_uid').Entry.Query().includeReference(['category', 'author']).find()\n * @example\n * .includeReference with reference_field_uids \n * stack.ContentType('contenttype_uid').Entry.Query().includeReference('category', 'author').find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#includeSchema\n * @description This method is used to include the schema of the current contenttype in result set along with the entry/entries. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().includeSchema().find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#language\n * @description This method is used to set the language code of which you want to retrieve the data. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @param {String} languageCode - Language code, for e.g. 'en-us', 'ja-jp', and so on\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().language('en-us').find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#includeContentType\n * @description This method is used to include the current content type in the result set along with the entry(ies). Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().includeContentType().find()\n * @returns {Query}\n */\n\n /**\n * @function\n * @name Query#includeOwner\n * @description This method is used to include the owner of the entry(ies) in the result set. Note: This method is only valid for querying {@link Stack#ContentType#Entry}.\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().includeOwner().find()\n * @returns {Query}\n */\n // -----------------------------------------Entry Queries End------------------------------------------------------\n\n /**\n * @function\n * @name Query#environment\n * @description This method is used to set the environment name of which you want to retrieve the data.\n * @param {String} environment_uid - UID/Name of environment\n * @example extension.stack.ContentType('contenttype_uid').Entry.Query().environment('development').find()\n * @returns {Query}\n */\n\n /**\n * @description This method provides only the entries containing field values matching the specified condition.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @example extension.stack.ContentType('blog').where('title','Demo')\n * @returns {Query}\n */\n equalTo(key, value) {\n if (key && typeof key === 'string') {\n this._query.query[key] = value;\n\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n where(key, value) {\n if (key && typeof key === 'string') {\n this._query.query[key] = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n /**\n * @description This method provides only the number of entries matching the specified filters.\n * @example extension.stack.ContentType('blog').count()\n * @returns {Query}\n */\n count() {\n this._query.count = true;\n const options = { content_type_uid: this.contentTypeUid, params: this._query, action: `get${this.module}` };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * @description This method is used to set raw queries on the Query instance.\n * @param {object} query - Raw{json} queries to filter the entries in the result set.\n * @returns {Query}\n */\n query(query) {\n if (typeof query === 'object') {\n this._query.query = Utils.mergeDeep(this._query.query, query);\n return this;\n }\n throw Error('Kindly provide valid parameters');\n }\n\n /**\n * @description The ’tags’ parameter allows you to specify an array of tags to search for objects.\n * @param {Array} values - Tags\n * @example extension.stack.ContentType('blog').tags(['technology', 'business'])\n * @returns {Query}\n */\n tags(values) {\n if (Array.isArray(values)) {\n this._query.tags = values;\n return this;\n }\n throw Error('Kindly provide valid parameters');\n }\n\n /**\n * @description This method also includes the total number of entries returned in the response.\n * @example extension.stack.ContentType('blog').includeCount()\n * @returns {Query}\n */\n includeCount() {\n this._query.include_count = true;\n return this;\n }\n\n /**\n * @summary returns Returns the raw query which can be used for further calls (.and/.or).\n * @description This method provides raw{json} queries based on the filters applied on the Query object.\n * @example extension.stack.ContentType('blog').where('title','Demo').getQuery()\n * @returns {Query}\n */\n getQuery() {\n return this._query.query;\n }\n\n /**\n * @description This method provides only the entries matching the regular expression for the specified field.\n * @param {String} key - UID of the field\n * @param {*} value - The value used to match or compare\n * @param {String} [options] - Match or compare a value in the entry\n * @example\n * .regex without options\n * let blogQuery = extension.stack.ContentType('blog').regex('title','^Demo')\n * @example\n * .regex with options\n * let blogQuery = extension.stack.ContentType('blog').regex('title','^Demo', 'i')\n * @returns {Query}\n */\n regex(key, value, options) {\n if (key && value && typeof key === 'string' && typeof value === 'string') {\n this._query.query[key] = {\n $regex: value\n };\n if (options) this._query.query[key].$options = options;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n /**\n * @description This method is used to search data in entries.\n * @param {string} value - Value to search in the entries.\n * @example extension.stack.ContentType('blog').search('Welcome to demo')\n * @returns {Query}\n */\n search(value) {\n if (value && typeof value === 'string') {\n this._query.typeahead = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n }\n\n /**\n * @description This method provides all the entries which satisfy the specified query.\n * @example\n * let blogQuery = extension.stack.ContentType('blog').find()\n */\n find() {\n const options = { content_type_uid: this.contentTypeUid, params: this._query, action: `get${this.module}` };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * @description This method provides a single entry from the result set.\n * @example\n * let blogQuery = extension.stack.ContentType('blog').findOne()\n */\n findOne() {\n this.singleEntry = true;\n this._query.limit = 1;\n const options = { content_type_uid: this.contentTypeUid, params: this._query, action: `get${this.module}` };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n}\n\nexport default Query;\n","import Asset from './api/asset/index.js';\nimport ContentType from './api/content-type/index.js';\n\nfunction onData(data) {\n if (typeof (data.data) === 'string') { return Promise.reject(data.data); }\n return Promise.resolve(data.data);\n}\n\nfunction onError(error) {\n return Promise.reject(error);\n}\n\n\n/**\n * Class representing the current stack in Contentstack UI.\n */\n\nclass Stack {\n /**\n * @hideconstructor\n */\n constructor(data, connection) {\n this._connection = connection;\n this._data = data;\n /**\n * @constructor\n * @hideconstructor\n * @version 2.2.0\n * @desc Content type defines the structure or schema of a page or a section of your web or mobile property\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#content-types| ContentType}\n * @param {string} uid - Uid of contenttype.\n * @example extension.stack.ContentType('content_type_uid')\n * */\n this.ContentType = ContentType(connection);\n /**\n * @constructor\n * @version 2.2.0\n * @hideconstructor\n * @desc An initializer is responsible for creating an Asset object.\n * @see {@link https://www.contentstack.com/docs/apis/content-management-api/#assets| Asset}\n * @param {string} uid - UID of the asset.\n * @example extension.stack.Asset('asset_uid')\n * */\n this.Asset = Asset(connection);\n }\n\n\n /**\n * This method returns the data of the current stack.\n * @return {Object} Returns stack data.\n */\n\n getData() {\n return this._data;\n }\n\n\n /**\n * This API allows you to retrieve data of a content type of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-a-single-content-type| Content Type API} requests. This method returns a Promise object.\n * @param {string} uid Uid of the desired content type\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with content type details.\n */\n getContentType(uid, params = {}) {\n if (!uid) {\n return Promise.reject(new Error('uid is required'));\n }\n const options = { uid, params, action: 'getContentType' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrieve data of a content types of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-all-content-types| Content Types API} requests. This method returns a Promise object.\n * @param {Object} query Query for the GET call\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with details of the content type.\n */\n getContentTypes(query = {}, params = {}) {\n const optionParams = params;\n optionParams.query = query;\n const options = { params: optionParams, action: 'getContentTypes' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrieve environment details of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-a-single-environment| Environment API} requests. This method returns a Promise object.\n * @param {string} name Name of the desired environment\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with environment details.\n */\n getEnvironment(name, params = {}) {\n if (!name) {\n return Promise.reject(new Error('name is required'));\n }\n const options = { name, params, action: 'getEnvironment' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrieve details of environments of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-all-environments| Environments API} requests. This method returns a Promise object.\n * @param {Object} query Query for the GET call\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A Promise object which will be resolved with details of the environments.\n */\n getEnvironments(query = {}, params = {}) {\n const optionParams = params;\n optionParams.query = query;\n const options = { params: optionParams, action: 'getEnvironments' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrive a locale of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-a-language| Language API} requests. Method returns a Promise object.\n * @param {string} code Code of the desired locale\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A promise object which will be resolved with locale details.\n */\n getLocale(code, params = {}) {\n if (!code) {\n return Promise.reject(new Error('code is required'));\n }\n const options = { code, params, action: 'getLocale' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n\n /**\n * This API allows you to retrive the locales of a stack using the {@link https://www.contentstack.com/docs/apis/content-management-api/#get-all-content-types| Languages API} requests. Method returns a Promise object.\n * @param {Object} query Query for the GET call\n * @param {Object} params Optional parameters for the GET call\n * @return {Object} A Promise object which will be resolved with details of the locales.\n */\n getLocales(query = {}, params = {}) {\n const optionParams = params;\n optionParams.query = query;\n const options = { params: optionParams, action: 'getLocales' };\n return this._connection.sendToParent('stackQuery', options).then(onData).catch(onError);\n }\n}\n\nexport default Stack;\n","export function transform(type) {\n return function () {\n switch (arguments.length) {\n case 1:\n if (Array.isArray(arguments[0]) || typeof arguments[0] === 'string') {\n let query = this._query[`${type}[BASE]`] || [];\n query = query.concat(arguments[0]);\n this._query[`${type}[BASE]`] = query;\n return this;\n }\n throw Error('Kindly provide valid parameters');\n\n case 2:\n if (typeof arguments[0] === 'string' && (Array.isArray(arguments[1]) || typeof arguments[1] === 'string')) {\n let query = this._query[`${type}[${arguments[0]}]`] || [];\n query = query.concat(arguments[1]);\n this._query[`${type}[${arguments[0]}]`] = query;\n return this;\n }\n throw Error('Kindly provide valid parameters');\n\n default:\n throw Error('Kindly provide valid parameters');\n }\n };\n}\n\n\n// merge two objects\nexport function merge(target, source) {\n const newTraget = target;\n if (target && source) {\n Object.keys(source).forEach((key) => {\n newTraget[key] = source[key];\n });\n }\n return newTraget;\n}\n\n// merge two objects\nexport function mergeDeep(oldTarget, oldSource) {\n const newTarget = oldTarget;\n const self = this;\n const _mergeRecursive = (anotherTarget, source) => {\n const target = anotherTarget;\n Object.keys(source).forEach((key) => {\n if (self._type(source[key]) === 'object' && self._type(target[key]) === self._type(source[key])) {\n _mergeRecursive(target[key], source[key]);\n } else if (self._type(source[key]) === 'array' && self._type(target[key]) === self._type(source[key])) {\n target[key] = target[key].concat(source[key]);\n } else {\n target[key] = source[key];\n }\n });\n };\n _mergeRecursive(newTarget, oldSource);\n return newTarget;\n}\n\n\nexport function _type(val) {\n let __typeof = typeof val;\n if (__typeof === 'object' && Array.isArray(val)) {\n __typeof = 'array';\n }\n return __typeof;\n}\n\nexport function addParam(key, value) {\n if (key && typeof key === 'string' && value && typeof value === 'string') {\n this._query[key] = value;\n return this;\n }\n throw Error('Kindly provide valid parameters.');\n}\n\nexport function addQuery(key, value) {\n if (key && value && typeof key === 'string') {\n this._query[key] = value;\n return this;\n }\n throw Error('First argument should be a String.');\n}\n\nexport function language(languageCode) {\n if (languageCode && typeof languageCode === 'string') {\n this._query.locale = languageCode;\n return this;\n }\n throw Error('Argument should be a String.');\n}\n\nexport function environment(environmentCode) {\n if (environmentCode && typeof environmentCode === 'string') {\n this._query.environment = environmentCode;\n return this;\n }\n throw Error('Argument should be a String.');\n}\n\nexport function includeOwner() {\n this._query.include_owner = true;\n return this;\n}\n\nexport function includeContentType() {\n this._query.include_content_type = true;\n return this;\n}\n\nexport function includeSchema() {\n this._query.include_schema = true;\n return this;\n}\n\nexport function includeReference(val) {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i += 1) {\n this._query['include[]'] = this._query['include[]'] || [];\n this._query['include[]'] = this._query['include[]'].concat(val[i]);\n }\n } else if (typeof val === 'string') {\n for (let i = 0; i < arguments.length; i += 1) {\n this._query['include[]'] = this._query['include[]'] || [];\n this._query['include[]'] = this._query['include[]'].concat(arguments[i]);\n }\n } else {\n throw Error('Argument should be a String or an Array.');\n }\n return this;\n}\n\nexport function getReferences() {\n return this.fetch(`get${this.constructor.module()}References`);\n}\n","function onError(error) {\n return Promise.reject(error);\n}\n/**\n * Class used by an extension to store your data in {@link external:localStorage}.\n */\nclass Store {\n /**\n * @hideconstructor\n */\n constructor(connection) {\n this._connection = connection;\n }\n /**\n * Gets the value of key\n * @param {string} key Key of the stored data\n * @example extension.store.get('key').then((value) => console.log(value)) // will log value for the given key\n * @return {external:Promise}\n */\n get(key) {\n if (!key || typeof key !== 'string') { throw new Error('Kindly provide valid parameters'); }\n return this._connection.sendToParent('store', { action: 'get', key })\n .then(event => Promise.resolve(event.data)).catch(onError);\n }\n\n /**\n * Gets an object with all the stored key-value pairs.\n * @example extension.store.getAll().then((obj) => obj)\n * @return {external:Promise}\n */\n getAll() {\n return this._connection.sendToParent('store', { action: 'getAll' })\n .then(({ data = {} }) => Promise.resolve(data)).catch(onError);\n }\n\n /**\n * Sets the value of a key\n * @param {string} key Key of the stored data.\n * @param {*} value Data to be stored.\n * @example extension.store.set('key', 'value').then((success) => console.log(success)) // will log ‘true’ when value is set\n * @return {external:Promise}\n */\n\n set(key, value) {\n if (!key || !value || typeof key !== 'string') {\n throw new Error('Kindly provide valid parameters');\n }\n return this._connection.sendToParent('store', { action: 'set', key, value })\n .then(() => Promise.resolve(true)).catch(onError);\n }\n\n /**\n * Removes the value of a key\n * @param {string} key Key of the data to be removed from the store\n * @example extension.store.remove('key').then((success) => console.log(success)) // will log ‘true’ when value is removed\n * @return {external:Promise}\n */\n\n remove(key) {\n if (!key || typeof key !== 'string') { throw new Error('Kindly provide valid parameters'); }\n return this._connection.sendToParent('store', { action: 'remove', key })\n .then(() => Promise.resolve(true)).catch(onError);\n }\n\n /**\n * Clears all the stored data of an extension\n * @example extension.store.clear().then((success) => console.log(success)) // will log ‘true’ when values are cleared\n * @return {external:Promise}\n */\n\n clear() {\n return this._connection.sendToParent('store', { action: 'clear' })\n .then(() => Promise.resolve(true)).catch(onError);\n }\n}\n\nexport default Store;\n","const config = { attributes: true, childList: true, subtree: true };\nlet observer;\n/**\n * Class representing an iframe window from Contentstack UI. Not available for Custom Widgets.\n */\n\nclass Window {\n /**\n * @hideconstructor\n */\n constructor(connection, type, emitter, state = 'half_width') {\n this._connection = connection;\n this._autoResizingEnabled = false;\n this._resizingEnabled = false;\n this.type = type;\n this.state = state;\n this._emitter = emitter;\n }\n\n /**\n * This method activates the resize button that gives you the provision to resize the window size of your Dashboard Widget.\n * @return {external:Promise} A promise object which will resolve when a resize button is visible on the Dashboard Widget.\n */\n enableResizing() {\n if (this.type !== 'DASHBOARD') { return Promise.resolve(); }\n this._resizingEnabled = true;\n return this._connection.sendToParent('window', { action: 'enableResizing' });\n }\n\n\n /**\n * This function executes the callback function whenever a Dashboard Widget extension is maximized or minimized. Only applicable on Dashboard Widget extensions.\n * @param {function} callback Function to be called when a Dashboard Widget extension is maximized or minimized\n * @return {boolean} Will return true\n */\n\n onDashboardResize(callback) {\n const windowObj = this;\n if (this.type !== 'DASHBOARD') {\n return false;\n }\n if (callback && typeof (callback) === 'function') {\n windowObj._emitter.on('dashboardResize', (event) => {\n windowObj.state = event.state;\n callback(event.state);\n });\n } else {\n throw Error('Callback must be a function');\n }\n return true;\n }\n\n\n /**\n * This method updates the extension height on Contentstack UI.\n * If the ‘height’ argument is not passed, it will calculate the scroll height and set the height of extension window accordingly.\n * @param {string|number} height Desired height of the iframe window\n * @return {external:Promise} A promise object which will be resolved when Contentstack UI sends an acknowledgement stating that the height has been updated.\n */\n updateHeight(height) {\n if (this.type === 'DASHBOARD' && this.state === 'half_width') { return Promise.resolve(); }\n if (!height || isNaN(height)) {\n this._height = Math.ceil(document.documentElement.getBoundingClientRect().height);\n } else if (this._height === height) {\n return Promise.resolve();\n } else {\n this._height = height;\n }\n return this._connection.sendToParent('resize', this._height);\n }\n\n /**\n * This method enables auto resizing of the extension height.\n * @return {Window}.\n */\n enableAutoResizing() {\n if (this._autoResizingEnabled || (this.state === 'half_width' && this.type === 'DASHBOARD')) {\n return this;\n }\n this._autoResizingEnabled = true;\n observer = new MutationObserver(this.updateHeight.bind(this));\n observer.observe(window.document.body, config);\n return this;\n }\n\n /**\n * This method disables auto resizing of the extension height.\n * @return {Window}.\n */\n disableAutoResizing() {\n if (!this._autoResizingEnabled) {\n return this;\n }\n this._autoResizingEnabled = false;\n observer.disconnect();\n return this;\n }\n}\n\nexport default Window;\n","module.exports = require('./lib/index.js').default;\n","!function(root, factory) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"postRobot\", [], factory) : \"object\" == typeof exports ? exports.postRobot = factory() : root.postRobot = factory();\n}(\"undefined\" != typeof self ? self : this, function() {\n return function(modules) {\n var installedModules = {};\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n module.l = !0;\n return module.exports;\n }\n __webpack_require__.m = modules;\n __webpack_require__.c = installedModules;\n __webpack_require__.d = function(exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n configurable: !1,\n enumerable: !0,\n get: getter\n });\n };\n __webpack_require__.n = function(module) {\n var getter = module && module.__esModule ? function() {\n return module.default;\n } : function() {\n return module;\n };\n __webpack_require__.d(getter, \"a\", getter);\n return getter;\n };\n __webpack_require__.o = function(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n __webpack_require__.p = \"\";\n return __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n }({\n \"./node_modules/cross-domain-utils/src/index.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(\"./node_modules/cross-domain-utils/src/utils.js\");\n __webpack_require__.d(__webpack_exports__, \"getActualDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.a;\n });\n __webpack_require__.d(__webpack_exports__, \"getAncestor\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.b;\n });\n __webpack_require__.d(__webpack_exports__, \"getDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.c;\n });\n __webpack_require__.d(__webpack_exports__, \"getUserAgent\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.d;\n });\n __webpack_require__.d(__webpack_exports__, \"isActuallySameDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.e;\n });\n __webpack_require__.d(__webpack_exports__, \"isAncestor\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.f;\n });\n __webpack_require__.d(__webpack_exports__, \"isIframe\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.g;\n });\n __webpack_require__.d(__webpack_exports__, \"isPopup\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.h;\n });\n __webpack_require__.d(__webpack_exports__, \"isWindow\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.i;\n });\n __webpack_require__.d(__webpack_exports__, \"isWindowClosed\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.j;\n });\n __webpack_require__.d(__webpack_exports__, \"matchDomain\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.k;\n });\n __webpack_require__.d(__webpack_exports__, \"stringifyDomainPattern\", function() {\n return __WEBPACK_IMPORTED_MODULE_0__utils__.l;\n });\n var __WEBPACK_IMPORTED_MODULE_1__types__ = __webpack_require__(\"./node_modules/cross-domain-utils/src/types.js\");\n __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__types__);\n },\n \"./node_modules/cross-domain-utils/src/types.js\": function(module, exports) {},\n \"./node_modules/cross-domain-utils/src/utils.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n function isRegex(item) {\n return \"[object RegExp]\" === Object.prototype.toString.call(item);\n }\n __webpack_exports__.a = getActualDomain;\n __webpack_exports__.c = getDomain;\n __webpack_exports__.e = isActuallySameDomain;\n __webpack_exports__.j = function(win) {\n var allowMock = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n try {\n if (win === window) return !1;\n } catch (err) {\n return !0;\n }\n try {\n if (!win) return !0;\n } catch (err) {\n return !0;\n }\n try {\n if (win.closed) return !0;\n } catch (err) {\n return !err || err.message !== IE_WIN_ACCESS_ERROR;\n }\n if (allowMock && function(win) {\n if (!isActuallySameDomain(win)) return !1;\n try {\n if (win === window) return !0;\n if (isAboutProtocol(win) && canReadFromWindow(win)) return !0;\n if (getDomain(window) === getDomain(win)) return !0;\n } catch (err) {}\n return !1;\n }(win)) try {\n if (win.mockclosed) return !0;\n } catch (err) {}\n try {\n if (!win.parent || !win.top) return !0;\n } catch (err) {}\n var iframeIndex = function(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }(iframeWindows, win);\n if (-1 !== iframeIndex) {\n var frame = iframeFrames[iframeIndex];\n if (frame && function(frame) {\n if (!frame.contentWindow) return !0;\n if (!frame.parentNode) return !0;\n var doc = frame.ownerDocument;\n return !(!doc || !doc.body || doc.body.contains(frame));\n }(frame)) return !0;\n }\n return !1;\n };\n __webpack_exports__.d = function(win) {\n return (win = win || window).navigator.mockUserAgent || win.navigator.userAgent;\n };\n __webpack_exports__.b = getAncestor;\n __webpack_exports__.f = function(parent, child) {\n var actualParent = getAncestor(child);\n if (actualParent) return actualParent === parent;\n if (child === parent) return !1;\n if (function(win) {\n if (win) {\n try {\n if (win.top) return win.top;\n } catch (err) {}\n if (getParent(win) === win) return win;\n try {\n if (isAncestorParent(window, win) && window.top) return window.top;\n } catch (err) {}\n try {\n if (isAncestorParent(win, window) && window.top) return window.top;\n } catch (err) {}\n for (var _i7 = 0, _getAllChildFrames4 = function getAllChildFrames(win) {\n for (var result = [], _i3 = 0, _getFrames2 = getFrames(win), _length2 = null == _getFrames2 ? 0 : _getFrames2.length; _i3 < _length2; _i3++) {\n var frame = _getFrames2[_i3];\n result.push(frame);\n for (var _i5 = 0, _getAllChildFrames2 = getAllChildFrames(frame), _length4 = null == _getAllChildFrames2 ? 0 : _getAllChildFrames2.length; _i5 < _length4; _i5++) {\n var childFrame = _getAllChildFrames2[_i5];\n result.push(childFrame);\n }\n }\n return result;\n }(win), _length6 = null == _getAllChildFrames4 ? 0 : _getAllChildFrames4.length; _i7 < _length6; _i7++) {\n var frame = _getAllChildFrames4[_i7];\n try {\n if (frame.top) return frame.top;\n } catch (err) {}\n if (getParent(frame) === frame) return frame;\n }\n }\n }(child) === child) return !1;\n for (var _i16 = 0, _getFrames8 = getFrames(parent), _length14 = null == _getFrames8 ? 0 : _getFrames8.length; _i16 < _length14; _i16++) if (_getFrames8[_i16] === child) return !0;\n return !1;\n };\n __webpack_exports__.h = function() {\n return Boolean(getOpener(window));\n };\n __webpack_exports__.g = function() {\n return Boolean(getParent(window));\n };\n __webpack_exports__.k = function matchDomain(pattern, origin) {\n if (\"string\" == typeof pattern) {\n if (\"string\" == typeof origin) return pattern === CONSTANTS.WILDCARD || origin === pattern;\n if (isRegex(origin)) return !1;\n if (Array.isArray(origin)) return !1;\n }\n return isRegex(pattern) ? isRegex(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !isRegex(origin) && pattern.some(function(subpattern) {\n return matchDomain(subpattern, origin);\n }));\n };\n __webpack_exports__.l = function(pattern) {\n return Array.isArray(pattern) ? \"(\" + pattern.join(\" | \") + \")\" : isRegex(pattern) ? \"RegExp(\" + pattern.toString() : pattern.toString();\n };\n __webpack_exports__.i = function(obj) {\n try {\n if (obj === window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (\"[object Window]\" === Object.prototype.toString.call(obj)) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (window.Window && obj instanceof window.Window) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.self === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.parent === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n if (obj && obj.top === obj) return !0;\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;\n }\n try {\n obj && obj.__cross_domain_utils_window_check__;\n } catch (err) {\n return !0;\n }\n return !1;\n };\n var CONSTANTS = {\n MOCK_PROTOCOL: \"mock:\",\n FILE_PROTOCOL: \"file:\",\n ABOUT_PROTOCOL: \"about:\",\n WILDCARD: \"*\"\n }, IE_WIN_ACCESS_ERROR = \"Call was rejected by callee.\\r\\n\";\n function isAboutProtocol() {\n return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window).location.protocol === CONSTANTS.ABOUT_PROTOCOL;\n }\n function getParent(win) {\n if (win) try {\n if (win.parent && win.parent !== win) return win.parent;\n } catch (err) {}\n }\n function getOpener(win) {\n if (win && !getParent(win)) try {\n return win.opener;\n } catch (err) {}\n }\n function canReadFromWindow(win) {\n try {\n win && win.location && win.location.href;\n return !0;\n } catch (err) {}\n return !1;\n }\n function getActualDomain(win) {\n var location = (win = win || window).location;\n if (!location) throw new Error(\"Can not read window location\");\n var protocol = location.protocol;\n if (!protocol) throw new Error(\"Can not read window protocol\");\n if (protocol === CONSTANTS.FILE_PROTOCOL) return CONSTANTS.FILE_PROTOCOL + \"//\";\n if (protocol === CONSTANTS.ABOUT_PROTOCOL) {\n var parent = getParent(win);\n return parent && canReadFromWindow(parent) ? getActualDomain(parent) : CONSTANTS.ABOUT_PROTOCOL + \"//\";\n }\n var host = location.host;\n if (!host) throw new Error(\"Can not read window host\");\n return protocol + \"//\" + host;\n }\n function getDomain(win) {\n var domain = getActualDomain(win = win || window);\n return domain && win.mockDomain && 0 === win.mockDomain.indexOf(CONSTANTS.MOCK_PROTOCOL) ? win.mockDomain : domain;\n }\n function isActuallySameDomain(win) {\n try {\n if (win === window) return !0;\n } catch (err) {}\n try {\n var desc = Object.getOwnPropertyDescriptor(win, \"location\");\n if (desc && !1 === desc.enumerable) return !1;\n } catch (err) {}\n try {\n if (isAboutProtocol(win) && canReadFromWindow(win)) return !0;\n } catch (err) {}\n try {\n if (getActualDomain(win) === getActualDomain(window)) return !0;\n } catch (err) {}\n return !1;\n }\n function isAncestorParent(parent, child) {\n if (!parent || !child) return !1;\n var childParent = getParent(child);\n return childParent ? childParent === parent : -1 !== function(win) {\n var result = [];\n try {\n for (;win.parent !== win; ) {\n result.push(win.parent);\n win = win.parent;\n }\n } catch (err) {}\n return result;\n }(child).indexOf(parent);\n }\n function getFrames(win) {\n var result = [], frames = void 0;\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n var len = void 0;\n try {\n len = frames.length;\n } catch (err) {}\n if (0 === len) return result;\n if (len) {\n for (var i = 0; i < len; i++) {\n var frame = void 0;\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n result.push(frame);\n }\n return result;\n }\n for (var _i = 0; _i < 100; _i++) {\n var _frame = void 0;\n try {\n _frame = frames[_i];\n } catch (err) {\n return result;\n }\n if (!_frame) return result;\n result.push(_frame);\n }\n return result;\n }\n var iframeWindows = [], iframeFrames = [];\n function getAncestor(win) {\n return getOpener(win = win || window) || getParent(win) || void 0;\n }\n },\n \"./src/index.js\": function(module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n Object.defineProperty(__webpack_exports__, \"__esModule\", {\n value: !0\n });\n __webpack_require__.d({}, \"WeakMap\", function() {\n return weakmap_CrossDomainSafeWeakMap;\n });\n var src_interface_namespaceObject = {};\n __webpack_require__.d(src_interface_namespaceObject, \"cleanUpWindow\", function() {\n return cleanUpWindow;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"Promise\", function() {\n return promise_ZalgoPromise;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"bridge\", function() {\n return bridge;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"init\", function() {\n return init;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"parent\", function() {\n return public_parent;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"send\", function() {\n return _send;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"request\", function() {\n return request;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"sendToParent\", function() {\n return sendToParent;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"client\", function() {\n return client;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"on\", function() {\n return _on;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"listen\", function() {\n return listen;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"once\", function() {\n return server_once;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"listener\", function() {\n return server_listener;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"CONFIG\", function() {\n return CONFIG;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"CONSTANTS\", function() {\n return constants_CONSTANTS;\n });\n __webpack_require__.d(src_interface_namespaceObject, \"disable\", function() {\n return disable;\n });\n var src = __webpack_require__(\"./node_modules/cross-domain-utils/src/index.js\");\n function safeIndexOf(collection, item) {\n for (var i = 0; i < collection.length; i++) try {\n if (collection[i] === item) return i;\n } catch (err) {}\n return -1;\n }\n var _ALLOWED_POST_MESSAGE, defineProperty = Object.defineProperty, counter = Date.now() % 1e9, weakmap_CrossDomainSafeWeakMap = function() {\n function CrossDomainSafeWeakMap() {\n !function(instance, Constructor) {\n if (!(instance instanceof CrossDomainSafeWeakMap)) throw new TypeError(\"Cannot call a class as a function\");\n }(this);\n counter += 1;\n this.name = \"__weakmap_\" + (1e9 * Math.random() >>> 0) + \"__\" + counter;\n if (function() {\n if (!window.WeakMap) return !1;\n if (!window.Object.freeze) return !1;\n try {\n var testWeakMap = new window.WeakMap(), testKey = {};\n window.Object.freeze(testKey);\n testWeakMap.set(testKey, \"__testvalue__\");\n return \"__testvalue__\" === testWeakMap.get(testKey);\n } catch (err) {\n return !1;\n }\n }()) try {\n this.weakmap = new window.WeakMap();\n } catch (err) {}\n this.keys = [];\n this.values = [];\n }\n CrossDomainSafeWeakMap.prototype._cleanupClosedWindows = function() {\n for (var weakmap = this.weakmap, keys = this.keys, i = 0; i < keys.length; i++) {\n var value = keys[i];\n if (Object(src.isWindow)(value) && Object(src.isWindowClosed)(value)) {\n if (weakmap) try {\n weakmap.delete(value);\n } catch (err) {}\n keys.splice(i, 1);\n this.values.splice(i, 1);\n i -= 1;\n }\n }\n };\n CrossDomainSafeWeakMap.prototype.isSafeToReadWrite = function(key) {\n if (Object(src.isWindow)(key)) return !1;\n try {\n key && key.self;\n key && key[this.name];\n } catch (err) {\n return !1;\n }\n return !0;\n };\n CrossDomainSafeWeakMap.prototype.set = function(key, value) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.set(key, value);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var name = this.name, entry = key[name];\n entry && entry[0] === key ? entry[1] = value : defineProperty(key, name, {\n value: [ key, value ],\n writable: !0\n });\n } else {\n this._cleanupClosedWindows();\n var keys = this.keys, values = this.values, index = safeIndexOf(keys, key);\n if (-1 === index) {\n keys.push(key);\n values.push(value);\n } else values[index] = value;\n }\n };\n CrossDomainSafeWeakMap.prototype.get = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n if (weakmap.has(key)) return weakmap.get(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (!this.isSafeToReadWrite(key)) {\n this._cleanupClosedWindows();\n var index = safeIndexOf(this.keys, key);\n if (-1 === index) return;\n return this.values[index];\n }\n var entry = key[this.name];\n if (entry && entry[0] === key) return entry[1];\n };\n CrossDomainSafeWeakMap.prototype.delete = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n weakmap.delete(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var entry = key[this.name];\n entry && entry[0] === key && (entry[0] = entry[1] = void 0);\n } else {\n this._cleanupClosedWindows();\n var keys = this.keys, index = safeIndexOf(keys, key);\n if (-1 !== index) {\n keys.splice(index, 1);\n this.values.splice(index, 1);\n }\n }\n };\n CrossDomainSafeWeakMap.prototype.has = function(key) {\n if (!key) throw new Error(\"WeakMap expected key\");\n var weakmap = this.weakmap;\n if (weakmap) try {\n return weakmap.has(key);\n } catch (err) {\n delete this.weakmap;\n }\n if (this.isSafeToReadWrite(key)) {\n var entry = key[this.name];\n return !(!entry || entry[0] !== key);\n }\n this._cleanupClosedWindows();\n return -1 !== safeIndexOf(this.keys, key);\n };\n return CrossDomainSafeWeakMap;\n }(), constants_CONSTANTS = {\n POST_MESSAGE_TYPE: {\n REQUEST: \"postrobot_message_request\",\n RESPONSE: \"postrobot_message_response\",\n ACK: \"postrobot_message_ack\"\n },\n POST_MESSAGE_ACK: {\n SUCCESS: \"success\",\n ERROR: \"error\"\n },\n POST_MESSAGE_NAMES: {\n METHOD: \"postrobot_method\",\n HELLO: \"postrobot_ready\",\n OPEN_TUNNEL: \"postrobot_open_tunnel\"\n },\n WINDOW_TYPES: {\n FULLPAGE: \"fullpage\",\n POPUP: \"popup\",\n IFRAME: \"iframe\"\n },\n WINDOW_PROPS: {\n POSTROBOT: \"__postRobot__\"\n },\n SERIALIZATION_TYPES: {\n METHOD: \"postrobot_method\",\n ERROR: \"postrobot_error\",\n PROMISE: \"postrobot_promise\",\n ZALGO_PROMISE: \"postrobot_zalgo_promise\",\n REGEX: \"regex\"\n },\n SEND_STRATEGIES: {\n POST_MESSAGE: \"postrobot_post_message\",\n BRIDGE: \"postrobot_bridge\",\n GLOBAL: \"postrobot_global\"\n },\n MOCK_PROTOCOL: \"mock:\",\n FILE_PROTOCOL: \"file:\",\n BRIDGE_NAME_PREFIX: \"__postrobot_bridge__\",\n POSTROBOT_PROXY: \"__postrobot_proxy__\",\n WILDCARD: \"*\"\n }, POST_MESSAGE_NAMES = {\n METHOD: \"postrobot_method\",\n HELLO: \"postrobot_hello\",\n OPEN_TUNNEL: \"postrobot_open_tunnel\"\n }, CONFIG = (Object.keys(POST_MESSAGE_NAMES).map(function(key) {\n return POST_MESSAGE_NAMES[key];\n }), {\n ALLOW_POSTMESSAGE_POPUP: !(\"__ALLOW_POSTMESSAGE_POPUP__\" in window) || window.__ALLOW_POSTMESSAGE_POPUP__,\n BRIDGE_TIMEOUT: 5e3,\n CHILD_WINDOW_TIMEOUT: 5e3,\n ACK_TIMEOUT: -1 !== window.navigator.userAgent.match(/MSIE/i) ? 2e3 : 1e3,\n RES_TIMEOUT: -1,\n ALLOWED_POST_MESSAGE_METHODS: (_ALLOWED_POST_MESSAGE = {}, _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.POST_MESSAGE] = !0, \n _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.BRIDGE] = !0, _ALLOWED_POST_MESSAGE[constants_CONSTANTS.SEND_STRATEGIES.GLOBAL] = !0, \n _ALLOWED_POST_MESSAGE),\n ALLOW_SAME_ORIGIN: !1\n });\n 0 === window.location.href.indexOf(constants_CONSTANTS.FILE_PROTOCOL) && (CONFIG.ALLOW_POSTMESSAGE_POPUP = !0);\n var _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n function stringifyError(err) {\n var level = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;\n if (level >= 3) return \"stringifyError stack overflow\";\n try {\n if (!err) return \"\";\n if (\"string\" == typeof err) return err;\n if (err instanceof Error) {\n var stack = err && err.stack, message = err && err.message;\n if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + \"\\n\" + stack;\n if (stack) return stack;\n if (message) return message;\n }\n return \"function\" == typeof err.toString ? err.toString() : Object.prototype.toString.call(err);\n } catch (newErr) {\n return \"Error while stringifying error: \" + stringifyError(newErr, level + 1);\n }\n }\n var once = function(method) {\n if (!method) return method;\n var called = !1;\n return function() {\n if (!called) {\n called = !0;\n return method.apply(this, arguments);\n }\n };\n };\n function util_noop() {}\n function uniqueID() {\n var chars = \"0123456789abcdef\";\n return \"xxxxxxxxxx\".replace(/./g, function() {\n return chars.charAt(Math.floor(Math.random() * chars.length));\n });\n }\n function replaceObject(item, callback) {\n var depth = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\n if (depth >= 100) throw new Error(\"Self-referential object passed, or object contained too many layers\");\n var newobj = void 0;\n if (\"object\" !== (void 0 === item ? \"undefined\" : _typeof(item)) || null === item || Array.isArray(item)) {\n if (!Array.isArray(item)) throw new TypeError(\"Invalid type: \" + (void 0 === item ? \"undefined\" : _typeof(item)));\n newobj = [];\n } else newobj = {};\n !function(item, callback) {\n Array.isArray(item) ? function(item, callback) {\n for (var i = 0; i < item.length; i++) callback(item[i], i);\n }(item, callback) : \"object\" === (void 0 === item ? \"undefined\" : _typeof(item)) && null !== item && function(item, callback) {\n for (var _key in item) item.hasOwnProperty(_key) && callback(item[_key], _key);\n }(item, callback);\n }(item, function(childItem, key) {\n var result = callback(childItem, key);\n void 0 !== result ? newobj[key] = result : \"object\" === (void 0 === childItem ? \"undefined\" : _typeof(childItem)) && null !== childItem ? newobj[key] = replaceObject(childItem, callback, depth + 1) : newobj[key] = childItem;\n });\n return newobj;\n }\n function isRegex(item) {\n return \"[object RegExp]\" === Object.prototype.toString.call(item);\n }\n function utils_isPromise(item) {\n try {\n if (!item) return !1;\n if (\"undefined\" != typeof Promise && item instanceof Promise) return !0;\n if (\"undefined\" != typeof window && window.Window && item instanceof window.Window) return !1;\n if (\"undefined\" != typeof window && window.constructor && item instanceof window.constructor) return !1;\n var _toString = {}.toString;\n if (_toString) {\n var name = _toString.call(item);\n if (\"[object Window]\" === name || \"[object global]\" === name || \"[object DOMWindow]\" === name) return !1;\n }\n if (\"function\" == typeof item.then) return !0;\n } catch (err) {\n return !1;\n }\n return !1;\n }\n function getGlobal() {\n var glob = void 0;\n if (\"undefined\" != typeof window) glob = window; else {\n if (\"undefined\" == typeof window) throw new TypeError(\"Can not find global\");\n glob = window;\n }\n var zalgoGlobal = glob.__zalgopromise__ = glob.__zalgopromise__ || {};\n zalgoGlobal.flushPromises = zalgoGlobal.flushPromises || [];\n zalgoGlobal.activeCount = zalgoGlobal.activeCount || 0;\n zalgoGlobal.possiblyUnhandledPromiseHandlers = zalgoGlobal.possiblyUnhandledPromiseHandlers || [];\n zalgoGlobal.dispatchedErrors = zalgoGlobal.dispatchedErrors || [];\n return zalgoGlobal;\n }\n var promise_ZalgoPromise = function() {\n function ZalgoPromise(handler) {\n var _this = this;\n !function(instance, Constructor) {\n if (!(instance instanceof ZalgoPromise)) throw new TypeError(\"Cannot call a class as a function\");\n }(this);\n this.resolved = !1;\n this.rejected = !1;\n this.errorHandled = !1;\n this.handlers = [];\n if (handler) {\n var _result = void 0, _error = void 0, resolved = !1, rejected = !1, isAsync = !1;\n try {\n handler(function(res) {\n if (isAsync) _this.resolve(res); else {\n resolved = !0;\n _result = res;\n }\n }, function(err) {\n if (isAsync) _this.reject(err); else {\n rejected = !0;\n _error = err;\n }\n });\n } catch (err) {\n this.reject(err);\n return;\n }\n isAsync = !0;\n resolved ? this.resolve(_result) : rejected && this.reject(_error);\n }\n }\n ZalgoPromise.prototype.resolve = function(result) {\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(result)) throw new Error(\"Can not resolve promise with another promise\");\n this.resolved = !0;\n this.value = result;\n this.dispatch();\n return this;\n };\n ZalgoPromise.prototype.reject = function(error) {\n var _this2 = this;\n if (this.resolved || this.rejected) return this;\n if (utils_isPromise(error)) throw new Error(\"Can not reject promise with another promise\");\n if (!error) {\n var _err = error && \"function\" == typeof error.toString ? error.toString() : Object.prototype.toString.call(error);\n error = new Error(\"Expected reject to be called with Error, got \" + _err);\n }\n this.rejected = !0;\n this.error = error;\n this.errorHandled || setTimeout(function() {\n _this2.errorHandled || function(err, promise) {\n if (-1 === getGlobal().dispatchedErrors.indexOf(err)) {\n getGlobal().dispatchedErrors.push(err);\n setTimeout(function() {\n throw err;\n }, 1);\n for (var j = 0; j < getGlobal().possiblyUnhandledPromiseHandlers.length; j++) getGlobal().possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n }(error, _this2);\n }, 1);\n this.dispatch();\n return this;\n };\n ZalgoPromise.prototype.asyncReject = function(error) {\n this.errorHandled = !0;\n this.reject(error);\n };\n ZalgoPromise.prototype.dispatch = function() {\n var _this3 = this, dispatching = this.dispatching, resolved = this.resolved, rejected = this.rejected, handlers = this.handlers;\n if (!dispatching && (resolved || rejected)) {\n this.dispatching = !0;\n getGlobal().activeCount += 1;\n for (var _loop = function(i) {\n var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise, result = void 0;\n if (resolved) try {\n result = onSuccess ? onSuccess(_this3.value) : _this3.value;\n } catch (err) {\n promise.reject(err);\n return \"continue\";\n } else if (rejected) {\n if (!onError) {\n promise.reject(_this3.error);\n return \"continue\";\n }\n try {\n result = onError(_this3.error);\n } catch (err) {\n promise.reject(err);\n return \"continue\";\n }\n }\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n result.resolved ? promise.resolve(result.value) : promise.reject(result.error);\n result.errorHandled = !0;\n } else utils_isPromise(result) ? result instanceof ZalgoPromise && (result.resolved || result.rejected) ? result.resolved ? promise.resolve(result.value) : promise.reject(result.error) : result.then(function(res) {\n promise.resolve(res);\n }, function(err) {\n promise.reject(err);\n }) : promise.resolve(result);\n }, i = 0; i < handlers.length; i++) _loop(i);\n handlers.length = 0;\n this.dispatching = !1;\n getGlobal().activeCount -= 1;\n 0 === getGlobal().activeCount && ZalgoPromise.flushQueue();\n }\n };\n ZalgoPromise.prototype.then = function(onSuccess, onError) {\n if (onSuccess && \"function\" != typeof onSuccess && !onSuccess.call) throw new Error(\"Promise.then expected a function for success handler\");\n if (onError && \"function\" != typeof onError && !onError.call) throw new Error(\"Promise.then expected a function for error handler\");\n var promise = new ZalgoPromise();\n this.handlers.push({\n promise: promise,\n onSuccess: onSuccess,\n onError: onError\n });\n this.errorHandled = !0;\n this.dispatch();\n return promise;\n };\n ZalgoPromise.prototype.catch = function(onError) {\n return this.then(void 0, onError);\n };\n ZalgoPromise.prototype.finally = function(onFinally) {\n if (onFinally && \"function\" != typeof onFinally && !onFinally.call) throw new Error(\"Promise.finally expected a function\");\n return this.then(function(result) {\n return ZalgoPromise.try(onFinally).then(function() {\n return result;\n });\n }, function(err) {\n return ZalgoPromise.try(onFinally).then(function() {\n throw err;\n });\n });\n };\n ZalgoPromise.prototype.timeout = function(time, err) {\n var _this4 = this;\n if (this.resolved || this.rejected) return this;\n var timeout = setTimeout(function() {\n _this4.resolved || _this4.rejected || _this4.reject(err || new Error(\"Promise timed out after \" + time + \"ms\"));\n }, time);\n return this.then(function(result) {\n clearTimeout(timeout);\n return result;\n });\n };\n ZalgoPromise.prototype.toPromise = function() {\n if (\"undefined\" == typeof Promise) throw new TypeError(\"Could not find Promise\");\n return Promise.resolve(this);\n };\n ZalgoPromise.resolve = function(value) {\n return value instanceof ZalgoPromise ? value : utils_isPromise(value) ? new ZalgoPromise(function(resolve, reject) {\n return value.then(resolve, reject);\n }) : new ZalgoPromise().resolve(value);\n };\n ZalgoPromise.reject = function(error) {\n return new ZalgoPromise().reject(error);\n };\n ZalgoPromise.all = function(promises) {\n var promise = new ZalgoPromise(), count = promises.length, results = [];\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n for (var _loop2 = function(i) {\n var prom = promises[i];\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n return \"continue\";\n }\n } else if (!utils_isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n return \"continue\";\n }\n ZalgoPromise.resolve(prom).then(function(result) {\n results[i] = result;\n 0 == (count -= 1) && promise.resolve(results);\n }, function(err) {\n promise.reject(err);\n });\n }, i = 0; i < promises.length; i++) _loop2(i);\n 0 === count && promise.resolve(results);\n return promise;\n };\n ZalgoPromise.hash = function(promises) {\n var result = {};\n return ZalgoPromise.all(Object.keys(promises).map(function(key) {\n return ZalgoPromise.resolve(promises[key]).then(function(value) {\n result[key] = value;\n });\n })).then(function() {\n return result;\n });\n };\n ZalgoPromise.map = function(items, method) {\n return ZalgoPromise.all(items.map(method));\n };\n ZalgoPromise.onPossiblyUnhandledException = function(handler) {\n return function(handler) {\n getGlobal().possiblyUnhandledPromiseHandlers.push(handler);\n return {\n cancel: function() {\n getGlobal().possiblyUnhandledPromiseHandlers.splice(getGlobal().possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n }(handler);\n };\n ZalgoPromise.try = function(method, context, args) {\n if (method && \"function\" != typeof method && !method.call) throw new Error(\"Promise.try expected a function\");\n var result = void 0;\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n return ZalgoPromise.reject(err);\n }\n return ZalgoPromise.resolve(result);\n };\n ZalgoPromise.delay = function(_delay) {\n return new ZalgoPromise(function(resolve) {\n setTimeout(resolve, _delay);\n });\n };\n ZalgoPromise.isPromise = function(value) {\n return !!(value && value instanceof ZalgoPromise) || utils_isPromise(value);\n };\n ZalgoPromise.flush = function() {\n var promise = new ZalgoPromise();\n getGlobal().flushPromises.push(promise);\n 0 === getGlobal().activeCount && ZalgoPromise.flushQueue();\n return promise;\n };\n ZalgoPromise.flushQueue = function() {\n var promisesToFlush = getGlobal().flushPromises;\n getGlobal().flushPromises = [];\n for (var _i2 = 0, _length2 = null == promisesToFlush ? 0 : promisesToFlush.length; _i2 < _length2; _i2++) promisesToFlush[_i2].resolve();\n };\n return ZalgoPromise;\n }(), global = window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] = window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] || {};\n global.registerSelf = function() {};\n var serialize__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n global.methods = global.methods || new weakmap_CrossDomainSafeWeakMap();\n var listenForMethods = once(function() {\n global.on(constants_CONSTANTS.POST_MESSAGE_NAMES.METHOD, {\n origin: constants_CONSTANTS.WILDCARD\n }, function(_ref) {\n var source = _ref.source, origin = _ref.origin, data = _ref.data, methods = global.methods.get(source);\n if (!methods) throw new Error(\"Could not find any methods this window has privileges to call\");\n var meth = methods[data.id];\n if (!meth) throw new Error(\"Could not find method with id: \" + data.id);\n if (!Object(src.matchDomain)(meth.domain, origin)) throw new Error(\"Method domain \" + meth.domain + \" does not match origin \" + origin);\n return promise_ZalgoPromise.try(function() {\n return meth.method.apply({\n source: source,\n origin: origin,\n data: data\n }, data.args);\n }).then(function(result) {\n return {\n result: result,\n id: data.id,\n name: data.name\n };\n });\n });\n });\n function isSerialized(item, type) {\n return \"object\" === (void 0 === item ? \"undefined\" : serialize__typeof(item)) && null !== item && item.__type__ === type;\n }\n function serializeMethod(destination, domain, method, name) {\n var id = uniqueID(), methods = global.methods.get(destination);\n if (!methods) {\n methods = {};\n global.methods.set(destination, methods);\n }\n methods[id] = {\n domain: domain,\n method: method\n };\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.METHOD,\n __id__: id,\n __name__: name\n };\n }\n function deserializeMethod(source, origin, obj) {\n function wrapper() {\n var args = Array.prototype.slice.call(arguments);\n return global.send(source, constants_CONSTANTS.POST_MESSAGE_NAMES.METHOD, {\n id: obj.__id__,\n name: obj.__name__,\n args: args\n }, {\n domain: origin,\n timeout: -1\n }).then(function(_ref2) {\n return _ref2.data.result;\n }, function(err) {\n throw err;\n });\n }\n wrapper.__name__ = obj.__name__;\n wrapper.__xdomain__ = !0;\n wrapper.source = source;\n wrapper.origin = origin;\n return wrapper;\n }\n function deserializeZalgoPromise(source, origin, prom) {\n return new promise_ZalgoPromise(function(resolve, reject) {\n return deserializeMethod(source, origin, prom.__then__)(resolve, reject);\n });\n }\n global.readyPromises = global.readyPromises || new weakmap_CrossDomainSafeWeakMap();\n function sayHello(win) {\n return global.send(win, constants_CONSTANTS.POST_MESSAGE_NAMES.HELLO, {}, {\n domain: constants_CONSTANTS.WILDCARD,\n timeout: -1\n }).then(function(_ref2) {\n return {\n origin: _ref2.origin\n };\n });\n }\n var SEND_MESSAGE_STRATEGIES = {};\n SEND_MESSAGE_STRATEGIES[constants_CONSTANTS.SEND_STRATEGIES.POST_MESSAGE] = function(win, serializedMessage, domain) {\n (Array.isArray(domain) ? domain : \"string\" == typeof domain ? [ domain ] : [ constants_CONSTANTS.WILDCARD ]).map(function(dom) {\n if (0 === dom.indexOf(constants_CONSTANTS.MOCK_PROTOCOL)) {\n if (window.location.protocol === constants_CONSTANTS.FILE_PROTOCOL) return constants_CONSTANTS.WILDCARD;\n if (!Object(src.isActuallySameDomain)(win)) throw new Error(\"Attempting to send messsage to mock domain \" + dom + \", but window is actually cross-domain\");\n return Object(src.getActualDomain)(win);\n }\n return 0 === dom.indexOf(constants_CONSTANTS.FILE_PROTOCOL) ? constants_CONSTANTS.WILDCARD : dom;\n }).forEach(function(dom) {\n return win.postMessage(serializedMessage, dom);\n });\n };\n var _extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n };\n function sendMessage(win, message, domain) {\n return promise_ZalgoPromise.try(function() {\n var _jsonStringify;\n message = function(win, message) {\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, id = uniqueID(), type = Object(src.isPopup)() ? constants_CONSTANTS.WINDOW_TYPES.POPUP : Object(src.isIframe)() ? constants_CONSTANTS.WINDOW_TYPES.IFRAME : constants_CONSTANTS.WINDOW_TYPES.FULLPAGE, sourceDomain = Object(src.getDomain)(window);\n return _extends({}, message, options, {\n sourceDomain: sourceDomain,\n id: message.id || id,\n windowType: type\n });\n }(win, message, {\n data: function(destination, domain, obj) {\n return replaceObject({\n obj: message.data\n }, function(item, key) {\n return \"function\" == typeof item ? serializeMethod(destination, domain, item, key.toString()) : item instanceof Error ? (err = item, \n {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.ERROR,\n __message__: stringifyError(err),\n __code__: err.code\n }) : window.Promise && item instanceof window.Promise ? function(destination, domain, promise, name) {\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.PROMISE,\n __then__: serializeMethod(destination, domain, function(resolve, reject) {\n return promise.then(resolve, reject);\n }, name + \".then\")\n };\n }(destination, domain, item, key.toString()) : promise_ZalgoPromise.isPromise(item) ? function(destination, domain, promise, name) {\n return {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.ZALGO_PROMISE,\n __then__: serializeMethod(destination, domain, function(resolve, reject) {\n return promise.then(resolve, reject);\n }, name + \".then\")\n };\n }(destination, domain, item, key.toString()) : isRegex(item) ? (regex = item, {\n __type__: constants_CONSTANTS.SERIALIZATION_TYPES.REGEX,\n __source__: regex.source\n }) : void 0;\n var err, regex;\n }).obj;\n }(win, domain),\n domain: domain\n });\n if (win === window && !CONFIG.ALLOW_SAME_ORIGIN) throw new Error(\"Attemping to send message to self\");\n if (Object(src.isWindowClosed)(win)) throw new Error(\"Window is closed\");\n var messages = [], serializedMessage = function(obj, replacer, indent) {\n var objectToJSON = void 0, arrayToJSON = void 0;\n try {\n if (\"{}\" !== JSON.stringify({})) {\n objectToJSON = Object.prototype.toJSON;\n delete Object.prototype.toJSON;\n }\n if (\"{}\" !== JSON.stringify({})) throw new Error(\"Can not correctly serialize JSON objects\");\n if (\"[]\" !== JSON.stringify([])) {\n arrayToJSON = Array.prototype.toJSON;\n delete Array.prototype.toJSON;\n }\n if (\"[]\" !== JSON.stringify([])) throw new Error(\"Can not correctly serialize JSON objects\");\n } catch (err) {\n throw new Error(\"Can not repair JSON.stringify: \" + err.message);\n }\n var result = JSON.stringify.call(this, obj, null, 2);\n try {\n objectToJSON && (Object.prototype.toJSON = objectToJSON);\n arrayToJSON && (Array.prototype.toJSON = arrayToJSON);\n } catch (err) {\n throw new Error(\"Can not repair JSON.stringify: \" + err.message);\n }\n return result;\n }(((_jsonStringify = {})[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT] = message, \n _jsonStringify));\n return promise_ZalgoPromise.map(Object.keys(SEND_MESSAGE_STRATEGIES), function(strategyName) {\n return promise_ZalgoPromise.try(function() {\n if (!CONFIG.ALLOWED_POST_MESSAGE_METHODS[strategyName]) throw new Error(\"Strategy disallowed: \" + strategyName);\n return SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);\n }).then(function() {\n messages.push(strategyName + \": success\");\n return !0;\n }, function(err) {\n messages.push(strategyName + \": \" + stringifyError(err) + \"\\n\");\n return !1;\n });\n }).then(function(results) {\n var success = results.some(Boolean), status = message.type + \" \" + message.name + \" \" + (success ? \"success\" : \"error\") + \":\\n - \" + messages.join(\"\\n - \") + \"\\n\";\n if (!success) throw new Error(status);\n });\n });\n }\n global.responseListeners = global.responseListeners || {};\n global.requestListeners = global.requestListeners || {};\n global.WINDOW_WILDCARD = global.WINDOW_WILDCARD || new function() {}();\n global.erroredResponseListeners = global.erroredResponseListeners || {};\n var _RECEIVE_MESSAGE_TYPE, __DOMAIN_REGEX__ = \"__domain_regex__\";\n function getResponseListener(hash) {\n return global.responseListeners[hash];\n }\n function deleteResponseListener(hash) {\n delete global.responseListeners[hash];\n }\n function isResponseListenerErrored(hash) {\n return Boolean(global.erroredResponseListeners[hash]);\n }\n function getRequestListener(_ref) {\n var name = _ref.name, win = _ref.win, domain = _ref.domain;\n win === constants_CONSTANTS.WILDCARD && (win = null);\n domain === constants_CONSTANTS.WILDCARD && (domain = null);\n if (!name) throw new Error(\"Name required to get request listener\");\n var nameListeners = global.requestListeners[name];\n if (nameListeners) for (var _i2 = 0, _ref3 = [ win, global.WINDOW_WILDCARD ], _length2 = null == _ref3 ? 0 : _ref3.length; _i2 < _length2; _i2++) {\n var winQualifier = _ref3[_i2], winListeners = winQualifier && nameListeners.get(winQualifier);\n if (winListeners) {\n if (domain && \"string\" == typeof domain) {\n if (winListeners[domain]) return winListeners[domain];\n if (winListeners[__DOMAIN_REGEX__]) for (var _i4 = 0, _winListeners$__DOMAI2 = winListeners[__DOMAIN_REGEX__], _length4 = null == _winListeners$__DOMAI2 ? 0 : _winListeners$__DOMAI2.length; _i4 < _length4; _i4++) {\n var _ref5 = _winListeners$__DOMAI2[_i4], regex = _ref5.regex, listener = _ref5.listener;\n if (Object(src.matchDomain)(regex, domain)) return listener;\n }\n }\n if (winListeners[constants_CONSTANTS.WILDCARD]) return winListeners[constants_CONSTANTS.WILDCARD];\n }\n }\n }\n var types__extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n }\n return target;\n }, RECEIVE_MESSAGE_TYPES = ((_RECEIVE_MESSAGE_TYPE = {})[constants_CONSTANTS.POST_MESSAGE_TYPE.ACK] = function(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message ack for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Ack origin \" + origin + \" does not match domain \" + options.domain.toString());\n options.ack = !0;\n }\n }, _RECEIVE_MESSAGE_TYPE[constants_CONSTANTS.POST_MESSAGE_TYPE.REQUEST] = function(source, origin, message) {\n var options = getRequestListener({\n name: message.name,\n win: source,\n domain: origin\n });\n function respond(data) {\n return message.fireAndForget || Object(src.isWindowClosed)(source) ? promise_ZalgoPromise.resolve() : sendMessage(source, types__extends({\n target: message.originalSource,\n hash: message.hash,\n name: message.name\n }, data), origin);\n }\n return promise_ZalgoPromise.all([ respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.ACK\n }), promise_ZalgoPromise.try(function() {\n if (!options) throw new Error(\"No handler found for post message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Request origin \" + origin + \" does not match domain \" + options.domain.toString());\n var data = message.data;\n return options.handler({\n source: source,\n origin: origin,\n data: data\n });\n }).then(function(data) {\n return respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE,\n ack: constants_CONSTANTS.POST_MESSAGE_ACK.SUCCESS,\n data: data\n });\n }, function(err) {\n var error = stringifyError(err).replace(/^Error: /, \"\"), code = err.code;\n return respond({\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE,\n ack: constants_CONSTANTS.POST_MESSAGE_ACK.ERROR,\n error: error,\n code: code\n });\n }) ]).then(util_noop).catch(function(err) {\n if (options && options.handleError) return options.handleError(err);\n throw err;\n });\n }, _RECEIVE_MESSAGE_TYPE[constants_CONSTANTS.POST_MESSAGE_TYPE.RESPONSE] = function(source, origin, message) {\n if (!isResponseListenerErrored(message.hash)) {\n var options = getResponseListener(message.hash);\n if (!options) throw new Error(\"No handler found for post message response for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n if (!Object(src.matchDomain)(options.domain, origin)) throw new Error(\"Response origin \" + origin + \" does not match domain \" + Object(src.stringifyDomainPattern)(options.domain));\n deleteResponseListener(message.hash);\n if (message.ack === constants_CONSTANTS.POST_MESSAGE_ACK.ERROR) {\n var err = new Error(message.error);\n message.code && (err.code = message.code);\n return options.respond(err, null);\n }\n if (message.ack === constants_CONSTANTS.POST_MESSAGE_ACK.SUCCESS) {\n var data = message.data || message.response;\n return options.respond(null, {\n source: source,\n origin: origin,\n data: data\n });\n }\n }\n }, _RECEIVE_MESSAGE_TYPE), receive__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n global.receivedMessages = global.receivedMessages || [];\n function receiveMessage(event) {\n if (!window || window.closed) throw new Error(\"Message recieved in closed window\");\n try {\n if (!event.source) return;\n } catch (err) {\n return;\n }\n var source = event.source, origin = event.origin, message = function(message) {\n var item, parsedMessage = void 0;\n try {\n parsedMessage = (item = message, JSON.parse(item));\n } catch (err) {\n return;\n }\n if (parsedMessage && \"object\" === (void 0 === parsedMessage ? \"undefined\" : receive__typeof(parsedMessage)) && null !== parsedMessage && (parsedMessage = parsedMessage[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT]) && \"object\" === (void 0 === parsedMessage ? \"undefined\" : receive__typeof(parsedMessage)) && null !== parsedMessage && parsedMessage.type && \"string\" == typeof parsedMessage.type && RECEIVE_MESSAGE_TYPES[parsedMessage.type]) return parsedMessage;\n }(event.data);\n if (message) {\n if (!message.sourceDomain || \"string\" != typeof message.sourceDomain) throw new Error(\"Expected message to have sourceDomain\");\n 0 !== message.sourceDomain.indexOf(constants_CONSTANTS.MOCK_PROTOCOL) && 0 !== message.sourceDomain.indexOf(constants_CONSTANTS.FILE_PROTOCOL) || (origin = message.sourceDomain);\n if (-1 === global.receivedMessages.indexOf(message.id)) {\n global.receivedMessages.push(message.id);\n if (!Object(src.isWindowClosed)(source) || message.fireAndForget) {\n message.data && (message.data = function(source, origin, obj) {\n return replaceObject({\n obj: message.data\n }, function(item) {\n if (\"object\" === (void 0 === item ? \"undefined\" : serialize__typeof(item)) && null !== item) return isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.METHOD) ? deserializeMethod(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.ERROR) ? function(source, origin, obj) {\n var err = new Error(obj.__message__);\n obj.__code__ && (err.code = obj.__code__);\n return err;\n }(0, 0, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.PROMISE) ? function(source, origin, prom) {\n return window.Promise ? new window.Promise(function(resolve, reject) {\n return deserializeMethod(source, origin, prom.__then__)(resolve, reject);\n }) : deserializeZalgoPromise(source, origin, prom);\n }(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.ZALGO_PROMISE) ? deserializeZalgoPromise(source, origin, item) : isSerialized(item, constants_CONSTANTS.SERIALIZATION_TYPES.REGEX) ? function(source, origin, item) {\n return new RegExp(item.__source__);\n }(0, 0, item) : void 0;\n }).obj;\n }(source, origin));\n RECEIVE_MESSAGE_TYPES[message.type](source, origin, message);\n }\n }\n }\n }\n function messageListener(event) {\n try {\n event.source;\n } catch (err) {\n return;\n }\n receiveMessage({\n source: event.source || event.sourceElement,\n origin: event.origin || event.originalEvent && event.originalEvent.origin,\n data: event.data\n });\n }\n global.receiveMessage = receiveMessage;\n global.requestPromises = global.requestPromises || new weakmap_CrossDomainSafeWeakMap();\n function request(options) {\n return promise_ZalgoPromise.try(function() {\n if (!options.name) throw new Error(\"Expected options.name\");\n var name = options.name, targetWindow = void 0, domain = void 0;\n if (\"string\" == typeof options.window) {\n var el = document.getElementById(options.window);\n if (!el) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be a valid element id\");\n if (\"iframe\" !== el.tagName.toLowerCase()) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be an iframe\");\n if (!el.contentWindow) throw new Error(\"Iframe must have contentWindow. Make sure it has a src attribute and is in the DOM.\");\n targetWindow = el.contentWindow;\n } else if (options.window instanceof HTMLIFrameElement) {\n if (\"iframe\" !== options.window.tagName.toLowerCase()) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(options.window) + \" to be an iframe\");\n if (options.window && !options.window.contentWindow) throw new Error(\"Iframe must have contentWindow. Make sure it has a src attribute and is in the DOM.\");\n options.window && options.window.contentWindow && (targetWindow = options.window.contentWindow);\n } else targetWindow = options.window;\n if (!targetWindow) throw new Error(\"Expected options.window to be a window object, iframe, or iframe element id.\");\n var win = targetWindow;\n domain = options.domain || constants_CONSTANTS.WILDCARD;\n var hash = options.name + \"_\" + uniqueID();\n if (Object(src.isWindowClosed)(win)) throw new Error(\"Target window is closed\");\n var hasResult = !1, requestPromises = global.requestPromises.get(win);\n if (!requestPromises) {\n requestPromises = [];\n global.requestPromises.set(win, requestPromises);\n }\n var requestPromise = promise_ZalgoPromise.try(function() {\n if (Object(src.isAncestor)(window, win)) return function(win) {\n var timeout = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 5e3, name = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"Window\", promise = global.readyPromises.get(win);\n if (promise) return promise;\n promise = new promise_ZalgoPromise();\n global.readyPromises.set(win, promise);\n -1 !== timeout && setTimeout(function() {\n return promise.reject(new Error(name + \" did not load after \" + timeout + \"ms\"));\n }, timeout);\n return promise;\n }(win, options.timeout || CONFIG.CHILD_WINDOW_TIMEOUT);\n }).then(function() {\n var origin = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).origin;\n if (isRegex(domain) && !origin) return sayHello(win);\n }).then(function() {\n var origin = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).origin;\n if (isRegex(domain)) {\n if (!Object(src.matchDomain)(domain, origin)) throw new Error(\"Remote window domain \" + origin + \" does not match regex: \" + domain.toString());\n domain = origin;\n }\n if (\"string\" != typeof domain && !Array.isArray(domain)) throw new TypeError(\"Expected domain to be a string or array\");\n var actualDomain = domain;\n return new promise_ZalgoPromise(function(resolve, reject) {\n var responseListener = void 0;\n options.fireAndForget || function(hash, listener) {\n global.responseListeners[hash] = listener;\n }(hash, responseListener = {\n name: name,\n window: win,\n domain: actualDomain,\n respond: function(err, result) {\n if (!err) {\n hasResult = !0;\n requestPromises.splice(requestPromises.indexOf(requestPromise, 1));\n }\n err ? reject(err) : resolve(result);\n }\n });\n sendMessage(win, {\n type: constants_CONSTANTS.POST_MESSAGE_TYPE.REQUEST,\n hash: hash,\n name: name,\n data: options.data,\n fireAndForget: options.fireAndForget\n }, actualDomain).catch(reject);\n if (options.fireAndForget) return resolve();\n var ackTimeout = CONFIG.ACK_TIMEOUT, resTimeout = options.timeout || CONFIG.RES_TIMEOUT, cycleTime = 100;\n setTimeout(function cycle() {\n if (!hasResult) {\n if (Object(src.isWindowClosed)(win)) return responseListener.ack ? reject(new Error(\"Window closed for \" + name + \" before response\")) : reject(new Error(\"Window closed for \" + name + \" before ack\"));\n ackTimeout = Math.max(ackTimeout - cycleTime, 0);\n -1 !== resTimeout && (resTimeout = Math.max(resTimeout - cycleTime, 0));\n if (responseListener.ack) {\n if (-1 === resTimeout) return;\n cycleTime = Math.min(resTimeout, 2e3);\n } else {\n if (0 === ackTimeout) return reject(new Error(\"No ack for postMessage \" + name + \" in \" + Object(src.getDomain)() + \" in \" + CONFIG.ACK_TIMEOUT + \"ms\"));\n if (0 === resTimeout) return reject(new Error(\"No response for postMessage \" + name + \" in \" + Object(src.getDomain)() + \" in \" + (options.timeout || CONFIG.RES_TIMEOUT) + \"ms\"));\n }\n setTimeout(cycle, cycleTime);\n }\n }, cycleTime);\n });\n });\n requestPromise.catch(function() {\n !function(hash) {\n global.erroredResponseListeners[hash] = !0;\n }(hash);\n deleteResponseListener(hash);\n });\n requestPromises.push(requestPromise);\n return requestPromise;\n });\n }\n function _send(window, name, data, options) {\n (options = options || {}).window = window;\n options.name = name;\n options.data = data;\n return request(options);\n }\n function sendToParent(name, data, options) {\n var win = Object(src.getAncestor)();\n return win ? _send(win, name, data, options) : new promise_ZalgoPromise(function(resolve, reject) {\n return reject(new Error(\"Window does not have a parent\"));\n });\n }\n function client() {\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n if (!options.window) throw new Error(\"Expected options.window\");\n var win = options.window;\n return {\n send: function(name, data) {\n return _send(win, name, data, options);\n }\n };\n }\n global.send = _send;\n var server__typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n function listen(options) {\n if (!options.name) throw new Error(\"Expected options.name\");\n if (!options.handler) throw new Error(\"Expected options.handler\");\n var name = options.name, win = options.window, domain = options.domain, listenerOptions = {\n handler: options.handler,\n handleError: options.errorHandler || function(err) {\n throw err;\n },\n window: win,\n domain: domain || constants_CONSTANTS.WILDCARD,\n name: name\n }, requestListener = function addRequestListener(_ref6, listener) {\n var name = _ref6.name, win = _ref6.win, domain = _ref6.domain;\n if (!name || \"string\" != typeof name) throw new Error(\"Name required to add request listener\");\n if (Array.isArray(win)) {\n for (var listenersCollection = [], _i6 = 0, _win2 = win, _length6 = null == _win2 ? 0 : _win2.length; _i6 < _length6; _i6++) {\n var item = _win2[_i6];\n listenersCollection.push(addRequestListener({\n name: name,\n domain: domain,\n win: item\n }, listener));\n }\n return {\n cancel: function() {\n for (var _i8 = 0, _length8 = null == listenersCollection ? 0 : listenersCollection.length; _i8 < _length8; _i8++) listenersCollection[_i8].cancel();\n }\n };\n }\n if (Array.isArray(domain)) {\n for (var _listenersCollection = [], _i10 = 0, _domain2 = domain, _length10 = null == _domain2 ? 0 : _domain2.length; _i10 < _length10; _i10++) {\n var _item = _domain2[_i10];\n _listenersCollection.push(addRequestListener({\n name: name,\n win: win,\n domain: _item\n }, listener));\n }\n return {\n cancel: function() {\n for (var _i12 = 0, _length12 = null == _listenersCollection ? 0 : _listenersCollection.length; _i12 < _length12; _i12++) _listenersCollection[_i12].cancel();\n }\n };\n }\n var existingListener = getRequestListener({\n name: name,\n win: win,\n domain: domain\n });\n win && win !== constants_CONSTANTS.WILDCARD || (win = global.WINDOW_WILDCARD);\n domain = domain || constants_CONSTANTS.WILDCARD;\n if (existingListener) throw win && domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString() + \" for \" + (win === global.WINDOW_WILDCARD ? \"wildcard\" : \"specified\") + \" window\") : win ? new Error(\"Request listener already exists for \" + name + \" for \" + (win === global.WINDOW_WILDCARD ? \"wildcard\" : \"specified\") + \" window\") : domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString()) : new Error(\"Request listener already exists for \" + name);\n var requestListeners = global.requestListeners, nameListeners = requestListeners[name];\n if (!nameListeners) {\n nameListeners = new weakmap_CrossDomainSafeWeakMap();\n requestListeners[name] = nameListeners;\n }\n var winListeners = nameListeners.get(win);\n if (!winListeners) {\n winListeners = {};\n nameListeners.set(win, winListeners);\n }\n var strDomain = domain.toString(), regexListeners = winListeners[__DOMAIN_REGEX__], regexListener = void 0;\n if (isRegex(domain)) {\n if (!regexListeners) {\n regexListeners = [];\n winListeners[__DOMAIN_REGEX__] = regexListeners;\n }\n regexListener = {\n regex: domain,\n listener: listener\n };\n regexListeners.push(regexListener);\n } else winListeners[strDomain] = listener;\n return {\n cancel: function() {\n if (winListeners) {\n delete winListeners[strDomain];\n win && 0 === Object.keys(winListeners).length && nameListeners.delete(win);\n regexListener && regexListeners.splice(regexListeners.indexOf(regexListener, 1));\n }\n }\n };\n }({\n name: name,\n win: win,\n domain: domain\n }, listenerOptions);\n if (options.once) {\n var _handler = listenerOptions.handler;\n listenerOptions.handler = once(function() {\n requestListener.cancel();\n return _handler.apply(this, arguments);\n });\n }\n if (listenerOptions.window && options.errorOnClose) var interval = function(method, time) {\n var timeout = void 0;\n timeout = setTimeout(function runInterval() {\n timeout = setTimeout(runInterval, 50);\n (function() {\n if (win && \"object\" === (void 0 === win ? \"undefined\" : server__typeof(win)) && Object(src.isWindowClosed)(win)) {\n interval.cancel();\n listenerOptions.handleError(new Error(\"Post message target window is closed\"));\n }\n }).call();\n }, 50);\n return {\n cancel: function() {\n clearTimeout(timeout);\n }\n };\n }();\n return {\n cancel: function() {\n requestListener.cancel();\n }\n };\n }\n function _on(name, options, handler) {\n if (\"function\" == typeof options) {\n handler = options;\n options = {};\n }\n (options = options || {}).name = name;\n options.handler = handler || options.handler;\n return listen(options);\n }\n function server_once(name) {\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, handler = arguments[2];\n if (\"function\" == typeof options) {\n handler = options;\n options = {};\n }\n options = options || {};\n handler = handler || options.handler;\n var errorHandler = options.errorHandler, promise = new promise_ZalgoPromise(function(resolve, reject) {\n (options = options || {}).name = name;\n options.once = !0;\n options.handler = function(event) {\n resolve(event);\n if (handler) return handler(event);\n };\n options.errorHandler = function(err) {\n reject(err);\n if (errorHandler) return errorHandler(err);\n };\n }), onceListener = listen(options);\n promise.cancel = onceListener.cancel;\n return promise;\n }\n function server_listener() {\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return {\n on: function(name, handler) {\n return _on(name, options, handler);\n }\n };\n }\n global.on = _on;\n function disable() {\n delete window[constants_CONSTANTS.WINDOW_PROPS.POSTROBOT];\n window.removeEventListener(\"message\", messageListener);\n }\n var public_parent = Object(src.getAncestor)();\n function cleanUpWindow(win) {\n var requestPromises = global.requestPromises.get(win);\n if (requestPromises) for (var _i2 = 0, _length2 = null == requestPromises ? 0 : requestPromises.length; _i2 < _length2; _i2++) requestPromises[_i2].reject(new Error(\"No response from window - cleaned up\"));\n global.popupWindowsByWin && global.popupWindowsByWin.delete(win);\n global.remoteWindows && global.remoteWindows.delete(win);\n global.requestPromises.delete(win);\n global.methods.delete(win);\n global.readyPromises.delete(win);\n }\n var bridge = null;\n function init() {\n if (!global.initialized) {\n handler = messageListener, (obj = window).addEventListener ? obj.addEventListener(\"message\", handler) : obj.attachEvent(\"onmessage\", handler);\n !function() {\n handler = function(_ref3) {\n var source = _ref3.source, origin = _ref3.origin, promise = global.readyPromises.get(source) || new promise_ZalgoPromise();\n promise.resolve({\n origin: origin\n });\n global.readyPromises.set(source, promise);\n }, global.on(constants_CONSTANTS.POST_MESSAGE_NAMES.HELLO, {\n domain: constants_CONSTANTS.WILDCARD\n }, function(_ref) {\n var source = _ref.source, origin = _ref.origin;\n return handler({\n source: source,\n origin: origin\n });\n });\n var handler, parent = Object(src.getAncestor)();\n parent && sayHello(parent).catch(util_noop);\n }();\n listenForMethods({\n on: _on,\n send: _send\n });\n }\n var obj, handler;\n global.initialized = !0;\n }\n init();\n __webpack_require__.d(__webpack_exports__, \"cleanUpWindow\", function() {\n return cleanUpWindow;\n });\n __webpack_require__.d(__webpack_exports__, \"Promise\", function() {\n return promise_ZalgoPromise;\n });\n __webpack_require__.d(__webpack_exports__, \"bridge\", function() {\n return bridge;\n });\n __webpack_require__.d(__webpack_exports__, \"init\", function() {\n return init;\n });\n __webpack_require__.d(__webpack_exports__, \"parent\", function() {\n return public_parent;\n });\n __webpack_require__.d(__webpack_exports__, \"send\", function() {\n return _send;\n });\n __webpack_require__.d(__webpack_exports__, \"request\", function() {\n return request;\n });\n __webpack_require__.d(__webpack_exports__, \"sendToParent\", function() {\n return sendToParent;\n });\n __webpack_require__.d(__webpack_exports__, \"client\", function() {\n return client;\n });\n __webpack_require__.d(__webpack_exports__, \"on\", function() {\n return _on;\n });\n __webpack_require__.d(__webpack_exports__, \"listen\", function() {\n return listen;\n });\n __webpack_require__.d(__webpack_exports__, \"once\", function() {\n return server_once;\n });\n __webpack_require__.d(__webpack_exports__, \"listener\", function() {\n return server_listener;\n });\n __webpack_require__.d(__webpack_exports__, \"CONFIG\", function() {\n return CONFIG;\n });\n __webpack_require__.d(__webpack_exports__, \"CONSTANTS\", function() {\n return constants_CONSTANTS;\n });\n __webpack_require__.d(__webpack_exports__, \"disable\", function() {\n return disable;\n });\n __webpack_exports__.default = src_interface_namespaceObject;\n }\n });\n});\n//# sourceMappingURL=post-robot.js.map\n//# sourceMappingURL=post-robot.js.map","/* @flow */\n\n// eslint-disable-next-line import/no-commonjs\nmodule.exports = require('./dist/post-robot');\n\n// eslint-disable-next-line import/no-commonjs\nmodule.exports.default = module.exports;\n","/*!\n * EventEmitter v5.2.4 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - http://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(this || {}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// startup\n// Load entry module and return exports\n// This entry module used 'module' so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(263);\n"],"names":["root","factory","exports","module","define","amd","self","Entry","initializationData","connection","emitter","this","content_type","data","_data","entry","locale","_connection","_emitter","thisEntry","on","event","_changedData","uid","path","split","value","schema","Object","keys","length","Error","skipNext","skipNextTwo","forEach","key","index","find","x","console","log","data_type","multiple","blockId","blocks","block","e","fieldIntilaizationDataObject","fieldObject","Field","onChange","callback","EventEmitter","Extension","initData","postRobot","config","currentUser","user","type","fieldConfig","field_config","field","store","Store","window","Window","dashboard_width","stack","Stack","name","emitEvent","state","sendToParent","version","excludedDataTypesForSetField","fieldDataObject","resolvedData","unResolvedData","separatedData","map","file","_resolvedData","_self","fieldObj","$uid","currentFieldObj","dataObj","indexOf","then","Promise","resolve","catch","reject","resolved","CONFIG","LOG_LEVEL","ContentstackUIExtension","_extension","initialize","onData","onError","error","Asset","getReferences","environment","payload","Array","fetch","entryQuery","assign","language","plural","action","assetType","asset_type","Base","uiConnection","Proxy","apply","Target","thisArg","argumentsList","_query","only","transform","except","addParam","constructor","options","content_type_uid","contentTypeUid","params","Query","includeOwner","includeContentType","includeSchema","includeReference","contentType","entryTarget","addQuery","ContentType","Utils","_extend","query","file_size","bool","isArray","concat","$exists","i","_i","arguments","push","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","notEqualTo","containedIn","notContainedIn","exists","notExists","ascending","descending","beforeUid","afterUid","skip","limit","or","and","count","mergeDeep","values","tags","include_count","$regex","$options","typeahead","singleEntry","optionParams","code","target","source","newTraget","oldTarget","oldSource","newTarget","_mergeRecursive","anotherTarget","_type","val","__typeof","languageCode","environmentCode","include_owner","include_content_type","include_schema","attributes","childList","subtree","observer","_autoResizingEnabled","_resizingEnabled","windowObj","height","isNaN","_height","Math","ceil","document","documentElement","getBoundingClientRect","MutationObserver","updateHeight","bind","observe","body","disconnect","modules","installedModules","__webpack_require__","moduleId","l","call","m","c","d","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","default","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","__WEBPACK_IMPORTED_MODULE_0__utils__","a","b","f","g","h","j","k","__WEBPACK_IMPORTED_MODULE_1__types__","isRegex","item","toString","getActualDomain","getDomain","isActuallySameDomain","win","allowMock","err","closed","message","IE_WIN_ACCESS_ERROR","isAboutProtocol","canReadFromWindow","mockclosed","parent","top","iframeIndex","collection","iframeWindows","frame","iframeFrames","contentWindow","parentNode","doc","ownerDocument","contains","navigator","mockUserAgent","userAgent","getAncestor","child","actualParent","getParent","isAncestorParent","_i7","_getAllChildFrames4","getAllChildFrames","result","_i3","_getFrames2","getFrames","_length2","_i5","_getAllChildFrames2","_length4","childFrame","_length6","_i16","_getFrames8","_length14","Boolean","getOpener","matchDomain","pattern","origin","CONSTANTS","WILDCARD","match","JSON","stringify","some","subpattern","join","obj","__cross_domain_utils_window_check__","MOCK_PROTOCOL","FILE_PROTOCOL","ABOUT_PROTOCOL","location","protocol","opener","href","host","domain","mockDomain","desc","getOwnPropertyDescriptor","childParent","frames","len","_frame","weakmap_CrossDomainSafeWeakMap","src_interface_namespaceObject","cleanUpWindow","promise_ZalgoPromise","bridge","init","public_parent","_send","request","client","_on","listen","server_once","server_listener","constants_CONSTANTS","disable","src","safeIndexOf","_ALLOWED_POST_MESSAGE","counter","Date","now","CrossDomainSafeWeakMap","instance","Constructor","TypeError","random","WeakMap","freeze","testWeakMap","testKey","set","weakmap","_cleanupClosedWindows","isWindow","isWindowClosed","delete","splice","isSafeToReadWrite","writable","has","POST_MESSAGE_TYPE","REQUEST","RESPONSE","ACK","POST_MESSAGE_ACK","SUCCESS","ERROR","POST_MESSAGE_NAMES","METHOD","HELLO","OPEN_TUNNEL","WINDOW_TYPES","FULLPAGE","POPUP","IFRAME","WINDOW_PROPS","POSTROBOT","SERIALIZATION_TYPES","PROMISE","ZALGO_PROMISE","REGEX","SEND_STRATEGIES","POST_MESSAGE","BRIDGE","GLOBAL","BRIDGE_NAME_PREFIX","POSTROBOT_PROXY","ALLOW_POSTMESSAGE_POPUP","__ALLOW_POSTMESSAGE_POPUP__","BRIDGE_TIMEOUT","CHILD_WINDOW_TIMEOUT","ACK_TIMEOUT","RES_TIMEOUT","ALLOWED_POST_MESSAGE_METHODS","ALLOW_SAME_ORIGIN","_typeof","Symbol","iterator","stringifyError","level","newErr","once","method","called","util_noop","uniqueID","chars","replace","charAt","floor","replaceObject","depth","newobj","_key","childItem","utils_isPromise","_toString","getGlobal","glob","zalgoGlobal","__zalgopromise__","flushPromises","activeCount","possiblyUnhandledPromiseHandlers","dispatchedErrors","ZalgoPromise","handler","_this","rejected","errorHandled","handlers","_result","_error","isAsync","res","dispatch","_this2","_err","setTimeout","promise","asyncReject","_this3","dispatching","_loop","_handlers$i","onSuccess","flushQueue","finally","onFinally","try","timeout","time","_this4","clearTimeout","toPromise","all","promises","results","_loop2","prom","hash","items","onPossiblyUnhandledException","cancel","context","args","delay","_delay","isPromise","flush","promisesToFlush","_i2","global","registerSelf","serialize__typeof","methods","listenForMethods","_ref","meth","id","isSerialized","__type__","serializeMethod","destination","__id__","__name__","deserializeMethod","wrapper","slice","send","_ref2","__xdomain__","deserializeZalgoPromise","__then__","sayHello","readyPromises","SEND_MESSAGE_STRATEGIES","serializedMessage","dom","postMessage","_RECEIVE_MESSAGE_TYPE","_extends","sendMessage","_jsonStringify","isPopup","isIframe","sourceDomain","windowType","__message__","__code__","regex","__source__","messages","replacer","indent","objectToJSON","arrayToJSON","toJSON","strategyName","success","status","getResponseListener","responseListeners","deleteResponseListener","isResponseListenerErrored","erroredResponseListeners","getRequestListener","nameListeners","requestListeners","_ref3","WINDOW_WILDCARD","winQualifier","winListeners","_i4","_winListeners$__DOMAI2","_ref5","listener","types__extends","RECEIVE_MESSAGE_TYPES","pathname","ack","respond","fireAndForget","originalSource","handleError","stringifyDomainPattern","response","receive__typeof","receiveMessage","parsedMessage","parse","receivedMessages","RegExp","messageListener","sourceElement","originalEvent","targetWindow","el","getElementById","tagName","toLowerCase","HTMLIFrameElement","hasResult","requestPromises","requestPromise","isAncestor","actualDomain","responseListener","ackTimeout","resTimeout","cycleTime","cycle","max","min","server__typeof","listenerOptions","errorHandler","requestListener","addRequestListener","_ref6","listenersCollection","_i6","_win2","_i8","_length8","_listenersCollection","_i10","_domain2","_length10","_item","_i12","_length12","existingListener","strDomain","regexListeners","regexListener","_handler","errorOnClose","interval","runInterval","onceListener","removeEventListener","popupWindowsByWin","remoteWindows","initialized","addEventListener","attachEvent","proto","originalGlobalValue","indexOfListener","listeners","alias","isValidListener","getListeners","evt","events","_getEvents","test","flattenListeners","flatListeners","getListenersAsObject","addListener","listenerIsWrapped","addOnceListener","defineEvent","defineEvents","evts","removeListener","off","addListeners","manipulateListeners","removeListeners","remove","single","removeEvent","_events","removeAllListeners","listenersMap","_getOnceReturnValue","trigger","emit","setOnceReturnValue","_onceReturnValue","noConflict","__webpack_module_cache__","cachedModule","undefined","loaded","__webpack_modules__","nmd","paths","children"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ui-extension-sdk.min.css b/dist/ui-extension-sdk.min.css deleted file mode 100644 index 6ea0542a..00000000 --- a/dist/ui-extension-sdk.min.css +++ /dev/null @@ -1 +0,0 @@ -@import url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.min.css);body,button,html,input,textarea{font-family:proximaNovaRegular,Arial,Helvetica,Sans-Serif}a,a:focus{color:#23bab5}*,ul{padding:0}*,h1,h2,h3,h4,h5,h6,ul{margin:0}.clear,.clearfix:after,.cs-table .table-row:after{clear:both}.cs-checkbox input[type=checkbox].cs+.lbl::before,.cs-text-box{-webkit-background-clip:padding-box;-moz-background-clip:padding}@font-face{font-family:proximaNovaRegular;src:url(https://new-static.contentstack.io/fonts/ProximaNova-Regular.otf)}@font-face{font-family:proximaNoveBold;src:url(https://new-static.contentstack.io/fonts/ProximaNova-Bold.otf)}@font-face{font-family:proximaNovaSemiBold;src:url(https://new-static.contentstack.io/fonts/ProximaNova-Semibold.otf)}@font-face{font-family:ProximaNovaRegularItalic;src:url(https://new-static.contentstack.io/fonts/ProximaNova-RegularItalic.otf)}@font-face{font-family:ProximaNovaLight;src:url(https://new-static.contentstack.io/fonts/ProximaNova-Light.otf)}body,html{font-size:13px;box-sizing:border-box;line-height:1.5;color:#748590;margin:0}:focus{outline:0!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;-ms-box-shadow:none!important;-o-box-shadow:none!important;box-shadow:none!important}*,:after,:before{box-sizing:inherit}a,div,p{word-wrap:break-word}a:hover{text-decoration:none;color:#1da6a1}a{cursor:pointer}::-webkit-file-upload-button{cursor:pointer}input[type=file]{cursor:pointer;font-size:23px;padding:0}ul li{list-style:none}h1{font-size:22px;font-family:ProximaNovaLight}h2{font-size:20px}h3{font-size:16px}h4{font-size:14px}h5{font-size:12px}h6{font-size:11px}.cs-text-box,p{font-size:14px}h2,h3,h4,h5,h6{font-family:proximaNovaSemiBold}.cs-form-group,p{margin-bottom:25px}p{line-height:20px}label{font-weight:400}.font-bold{font-family:proximaNoveBold}.font-semi-bold{font-family:proximaNovaSemiBold}.flex{display:flex}.collapse{display:none!important}.collapse.in{display:block!important}.clearfix:after,.clearfix:before{content:"";display:table}.white-text{color:#fff}.left{float:left}.right{float:right}.center{text-align:center}.flex-wrap{flex-wrap:wrap}.vertical-center{position:absolute;transform:translateY(-50%);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);top:50%}.cs-text-box::-webkit-input-placeholder{color:#aabac4}.cs-text-box::-moz-placeholder{color:#aabac4}.cs-text-box:-ms-input-placeholder{color:#aabac4}.cs-text-box{border:1px solid #e6eced;height:35px;color:#748590;padding:8px 10px;background-color:#f7fbfc;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background-clip:padding-box}.cs-text-box:focus{outline:0;border-color:#bbddeb;color:#748590}.cs-text-box:disabled{color:#a5b0b3;border-color:rgba(230,236,237,.15)}.cs-text-box.error{color:#f18183;background-color:#fef5f5;border-color:#fac8c8}.cs-form-group textarea.cs-text-box{min-height:90px;resize:none}.cs-form-group .field-label{display:block;margin-bottom:8px;font-size:14px}.cs-form-group .invalid{display:block;font-size:12px;color:#F77D7A;text-align:left;padding-top:6px}.cs-form-group .has-error{outline:0;border-color:#F6C9CE!important;background-color:#FFF5F6!important}.cs-form-group .field-label .mandatory{color:#ea3c3c;font-size:13px}.cs-form-group .field-label .mandatory-align{margin-left:2px}.cs-form-group.search-box{position:relative;border:0}.cs-form-group.search-box .cs-text-box{padding-left:20px;border:0;color:#b7b7b7}.cs-form-group.search-box .cs-text-box::-webkit-input-placeholder{color:#aabac4;font-family:ProximaNovaRegularItalic}.cs-form-group.search-box .cs-text-box::-moz-placeholder{color:#aabac4;font-family:ProximaNovaRegularItalic}.cs-form-group.search-box .cs-text-box::-ms-input-placeholder{color:#aabac4;font-family:ProximaNovaRegularItalic}.cs-form-group.search-box i{position:absolute;left:0;top:8px;color:#63747f}.cs-form-group.search-box i.icon-remove{left:auto;top:10px;right:0;cursor:pointer}.cs-checkbox input[type=checkbox].cs,.cs-checkbox input[type=radio].cs{visibility:hidden;position:absolute;z-index:20;width:18px;height:18px}.cs-checkbox .lbl{color:#748590}.cs-checkbox input[type=checkbox].cs+.lbl,.cs-checkbox input[type=radio].cs+span{position:relative;display:inline-block;min-height:18px;min-width:18px;cursor:pointer}.cs-checkbox input[type=checkbox].cs:checked+.lbl::before,.cs-checkbox input[type=checkbox].cs:checked+.lblnew::after,.cs-checkbox input[type=radio].cs:checked+.lbl::before{display:inline-block;content:'\f00c';background-color:transparent}.cs-checkbox input[type=checkbox].cs+.lbl::before,.cs-checkbox input[type=radio].cs+.lbl::before{cursor:pointer;font-size:12px;color:#25c2a3;background-color:#dfeaec;height:15px;line-height:14px;min-width:15px;margin-right:8px;top:-1px;content:"\a0";font-family:fontAwesome;display:inline-block;font-weight:400;position:relative;text-align:center}.cs-checkbox input[type=checkbox].cs+.lbl::before{-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;background-clip:padding-box;margin-top:1.4px}.cs-checkbox input[type=radio].cs+.lbl::before{-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.cs-checkbox .cs:hover+span:before{background:#dfeaec!important}.cs-checkbox input[type=checkbox].cs:disabled+.lblnew::after{box-shadow:none!important;color:#748590;cursor:not-allowed}.cs-checkbox input[type=checkbox].cs:disabled+.lbl::before,.cs-checkbox input[type=radio].cs:disabled+.lbl::before{box-shadow:none!important;color:#748590;cursor:default}.cs-checkbox .cs,.cs-checkbox label{margin:0}.cs-checkbox input[type=radio].cs+.lbl:before{-webkit-border-radius:50%!important;-moz-border-radius:50%!important;border-radius:50%!important;-webkit-background-clip:padding-box!important;-moz-background-clip:padding!important;background-clip:padding-box!important;height:14px!important;min-width:14px!important;font-size:5px!important;content:"\a0";top:-3px!important;border:1px solid #dfeaec}.cs-checkbox input[type=radio].cs:checked+.lbl::before{content:"\f111"!important;border:1px solid #25c2a3;background:0 0!important;color:#25c2a3!important}.cs-checkbox input[type=radio].cs:hover+span:before{border:1px solid #dfeaec;color:#748590;content:"\f111"!important}.cs-checkbox input[type=radio].cs:disabled+.lbl::before{border-color:#748590!important}.cs-checkbox input[type=checkbox].cs+.lblnew::after{cursor:pointer;font-family:fontAwesome;font-weight:400;font-size:12px;color:#25c2a3;content:"\a0";background-color:#dfeaec;display:inline-block;text-align:center;height:15px;line-height:19px;min-width:15px;position:relative;top:8px;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;float:right;margin-top:1.4px}.btn[disabled]{cursor:default!important;opacity:.65}.btn{border-radius:3px;display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid transparent}.cs-btn-primary .icon-external-link,.cs-btn-success .icon-external-link{vertical-align:text-bottom}.btn i{margin-right:5px}.btn:active,.btn:focus,.btn:hover{outline:0!important;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}.btn.btn-large-90{min-width:90px}.btn.disabled{background:#f5fbfc;color:#c4d1d5;border-color:#edf1f2}.cs-btn-success{background-color:#25c2a3;color:#fff}.cs-btn-success:focus,.cs-btn-success:hover{background-color:#25bd9f;color:#fff}.cs-btn-error{background-color:#DA384C;color:#fff}.cs-btn-error:focus,.cs-btn-error:hover{background-color:#d84355;color:#fff}.cs-btn-warning{background-color:#f6686a;color:#fff}.cs-btn-warning i{margin:0;color:#fff}.cs-btn-warning:hover{background-color:#f06567}.cs-btn-warning:hover i{color:#fff}.cs-btn-transparent{background-color:transparent;color:#748590!important;margin-right:0}.cs-btn-primary{border:1px solid #d1dfe2;background:#fff;color:#748590!important;white-space:normal}.cs-btn-primary:hover{color:#7f919d!important;border-color:#c6d4d7}.cs-btn-circle{border-radius:30px;border:1px solid #25c2a3;padding:5px 15px;position:relative;color:#25c2a3;background:#fff}.w-1{width:1%}.w-2{width:2%}.w-3{width:3%}.w-4{width:4%}.w-5{width:5%}.w-6{width:6%}.w-7{width:7%}.w-8{width:8%}.w-9{width:9%}.w-10{width:10%}.w-11{width:11%}.w-12{width:12%}.w-13{width:13%}.w-14{width:14%}.w-15{width:15%}.w-16{width:16%}.w-17{width:17%}.w-18{width:18%}.w-19{width:19%}.w-20{width:20%}.w-21{width:21%}.w-22{width:22%}.w-23{width:23%}.w-24{width:24%}.w-25{width:25%}.w-26{width:26%}.w-27{width:27%}.w-28{width:28%}.w-29{width:29%}.w-30{width:30%}.w-31{width:31%}.w-32{width:32%}.w-33{width:33%}.w-34{width:34%}.w-35{width:35%}.w-36{width:36%}.w-37{width:37%}.w-38{width:38%}.w-39{width:39%}.w-40{width:40%}.w-41{width:41%}.w-42{width:42%}.w-43{width:43%}.w-44{width:44%}.w-45{width:45%}.w-46{width:46%}.w-47{width:47%}.w-48{width:48%}.w-49{width:49%}.w-50{width:50%}.w-51{width:51%}.w-52{width:52%}.w-53{width:53%}.w-54{width:54%}.w-55{width:55%}.w-56{width:56%}.w-57{width:57%}.w-58{width:58%}.w-59{width:59%}.w-60{width:60%}.w-61{width:61%}.w-62{width:62%}.w-63{width:63%}.w-64{width:64%}.w-65{width:65%}.w-66{width:66%}.w-67{width:67%}.w-68{width:68%}.w-69{width:69%}.w-70{width:70%}.w-71{width:71%}.w-72{width:72%}.w-73{width:73%}.w-74{width:74%}.w-75{width:75%}.w-76{width:76%}.w-77{width:77%}.w-78{width:78%}.w-79{width:79%}.w-80{width:80%}.w-81{width:81%}.w-82{width:82%}.w-83{width:83%}.w-84{width:84%}.w-85{width:85%}.w-86{width:86%}.w-87{width:87%}.w-88{width:88%}.w-89{width:89%}.w-90{width:90%}.w-91{width:91%}.w-92{width:92%}.w-93{width:93%}.w-94{width:94%}.w-95{width:95%}.w-96{width:96%}.w-97{width:97%}.w-98{width:98%}.w-99{width:99%}.w-100{width:100%}.cs-table .cs-table-bottom-bar,.cs-table .cs-table-top-header{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;background-color:#fff;border:1px solid #e8e8e9;border-bottom:0;height:65px;padding:16px 15px}.cs-table .cs-table-bottom-bar .cs-pagination,.cs-table .cs-table-top-header .cs-pagination{margin-top:5px}.cs-table .cs-table-bottom-bar .cs-form-group.search-box .cs-text-box,.cs-table .cs-table-top-header .cs-form-group.search-box .cs-text-box{padding-left:0;margin-left:22px;width:100%;background-color:#fff}.cs-table .cs-table-bottom-bar .cs-form-group.search-box button,.cs-table .cs-table-top-header .cs-form-group.search-box button{position:absolute}.cs-table .cs-table-bottom-bar{float:left;width:100%;border:1px solid #e8e8e9;border-top:0;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.cs-table .cs-table-bottom-bar .dropdown-menu{z-index:9999!important}.cs-table .cs-table-head{background-color:#f3f7f8;border:1px solid #e8e8e9;border-top:0;border-bottom:0}.cs-table .cs-table-head .table-cell{font-weight:700;color:#4f6471;padding:19px 10px 19px 15px;font-size:12px;text-transform:uppercase;font-family:proximaNovaSemiBold}.cs-table .cs-table-head .table-cell i{float:right;position:relative}.cs-table .cs-table-body{background-color:#fff;border:1px solid #e8e8e9;border-top:0;border-bottom:0;min-height:197px;position:relative}.cs-table .cs-table-body .table-cell{color:#748590;padding:20px 15px}.cs-table .cs-table-body .table-cell .key{color:#bebebe}.cs-table .cs-table-body .table-cell .updated-at{font-size:12px;color:#aabac4;line-height:14px}.cs-table .table-row{clear:both;display:flex;position:relative;flex-wrap:wrap}.cs-table .table-row .icon-ellipsis-v{display:none;cursor:pointer;position:absolute;right:0;color:#aabac5}.cs-table .table-row .icon-ellipsis-v:hover{color:#63747f}.cs-table .table-row:hover{background:#f5fbfc}.cs-table .table-row:hover i.icon-ellipsis-v{display:block}.cs-table .table-row .action-button-icon{position:absolute;right:18px;top:22px}.cs-table .table-row .action-button-icon i.icon-ellipsis-v{font-size:17px}.cs-table .table-row:after,.cs-table .table-row:before{content:"";display:table}.cs-table .table-row>a{flex:1 0 100%;display:flex}.cs-table .table-row .shrink-row{border-bottom:1px solid #edf1f2;width:100%;padding-left:22px}.cs-table .table-cell{float:left;font-size:14px;word-wrap:break-word}.cs-table .table-cell:last-child{border-right:0}.cs-pagination .dropdown,.cs-pagination .pagination-next,.cs-pagination .pagination-prev{background-color:#fff;border:1px solid #e8e8e9;-webkit-background-clip:padding-box;-moz-background-clip:padding;float:left}.cs-table ul{float:left;width:100%}.cs-pagination .pagination-next,.cs-pagination .pagination-prev{text-align:center;vertical-align:middle;cursor:pointer;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background-clip:padding-box}.cs-pagination .pagination-next i,.cs-pagination .pagination-prev i{font-size:10px;color:#63747f;display:table-cell;height:22px;width:22px;vertical-align:middle}.cs-pagination .pagination-next.disable,.cs-pagination .pagination-prev.disable{background-color:#fff;cursor:default!important}.cs-pagination .pagination-next.disable i,.cs-pagination .pagination-prev.disable i{color:#aabac4}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.cs-pagination .pagination-next i,.cs-pagination .pagination-prev i{height:23px}}.cs-pagination .pagination-prev{margin:0 5px}.cs-pagination .dropdown{cursor:pointer;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background-clip:padding-box}.cs-pagination .dropdown .selected{padding:2px 6px}.cs-pagination .dropdown .selected span{color:#25c2a3;font-size:12px;margin:0 8px 0 5px}.cs-pagination .dropdown .selected i{font-size:10px;color:#787981}.cs-pagination .dropdown.no-pagination{cursor:default!important}.cs-pagination .dropdown.no-pagination i{display:none}.cs-pagination .dropdown.no-pagination .dropdown-menu{display:none!important}.cs-pagination .dropdown.no-pagination .dropdown-toggle{cursor:default}.cs-pagination .dropdown .dropdown-menu{min-width:50px;border:1px solid #e8e8e9;top:50%;padding:0;left:-4px;overflow:auto;z-index:10;overflow-y:auto;max-height:160px;-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}.cs-pagination .dropdown .dropdown-menu.upper-pagination{top:-3px}.cs-pagination .dropdown .dropdown-menu::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}.cs-pagination .dropdown .dropdown-menu::-webkit-scrollbar{width:6px;background-color:transparent}.cs-pagination .dropdown .dropdown-menu::-webkit-scrollbar-thumb{border-radius:6px;background-color:#dfe2e9}.cs-pagination .dropdown .dropdown-menu li{cursor:pointer;padding:5px 0;text-align:center}.cs-pagination .dropdown .dropdown-menu li:hover{background-color:#f5f5f5}.cs-tags,.cs-tags:hover{background-color:#f3f7f8}.cs-pagination .dropdown .dropdown-menu li.selected-option{color:#25c2a3}.cs-pagination .result{float:left;margin:2px 20px 0;font-style:italic;line-height:24px;color:#748590}.cs-pagination .result label{display:initial}.cs-pagination .result .font-semi-bold{color:#4f6471;margin-right:4px}.cs-pagination .cancel-search,.cs-pagination .filter,.cs-pagination .refresh{float:left;padding:0 15px;border-right:1px solid #e2e2e2;height:20px;line-height:24px;margin-top:2px;color:#63747f}.cs-pagination .cancel-search i,.cs-pagination .filter i,.cs-pagination .refresh i{margin-right:6px;font-size:14px;cursor:pointer}.cs-pagination .cancel-search label,.cs-pagination .filter label,.cs-pagination .refresh label{font-size:14px}.cs-tags{padding:0 5px;margin:0 2.5px 5px;float:left;vertical-align:middle;border:1px solid #e8eced;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;color:#aabac4}.cs-tags span{text-overflow:ellipsis;overflow:hidden;max-width:80px;white-space:nowrap}.cs-tags .title{font-family:proximaNovaSemiBold;float:left;margin:0 5px}.cs-tags .value{float:left}.cs-tags i{color:#748590;display:inline-block;cursor:pointer;margin:0 5px 0 10px;font-size:12px}.drag-icon{width:7px;height:19px;background-position:-5px -218px;position:absolute;left:0;cursor:move;display:inline-block;background-image:url(https://app.contentstack.com/static/images/cs-icons-v2.png);float:left;visibility:hidden}.minus-sign,.plus-sign{width:15px;height:15px;vertical-align:sub;cursor:pointer;margin-left:2px;background-size:15px 15px;background-repeat:no-repeat;display:inline-block}.minus-sign{background-image:url(https://app.contentstack.com/static/images/minus@2x.png)}.plus-sign{background-image:url(https://app.contentstack.com/static/images/plus@2x.png)}.reference-loading{width:50%}.reference-loading .loader,.reference-loading .loader:after,.reference-loading .loader:before{border-radius:50%;width:1.3em;height:1.3em;-webkit-animation:load7 1.8s infinite ease-in-out;animation:load7 1.8s infinite ease-in-out}.reference-loading .loader{color:#25c2a3;font-size:10px;position:relative;text-indent:-9999em;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation-delay:-.16s;animation-delay:-.16s;top:-20px;margin-left:6%}.reference-loading .loader:after,.reference-loading .loader:before{content:'';position:absolute;top:0}.reference-loading .loader:before{left:-2.5em;-webkit-animation-delay:-.32s;animation-delay:-.32s}.reference-loading .loader:after{left:2.5em}.reference-loading{display:inline-block;margin-left:50px}@-webkit-keyframes load7{0%,100%,80%{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em 0 0}}@keyframes load7{0%,100%,80%{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em 0 0}}.reference-loading .loading{text-align:center;margin:20px auto}.reference-loading .loading-flash div{border-radius:50%;height:10px;width:10px;display:inline-block;box-sizing:border-box;background:#25c2a3}.reference-loading .loading-flash div:nth-of-type(4){animation:flash .4s .5s ease-in-out infinite}.reference-loading .loading-flash div:nth-of-type(3){animation:flash .4s .2s linear infinite}.reference-loading .loading-flash div:nth-of-type(2){animation:flash .4s -.1s linear infinite}.reference-loading .loading-flash div:nth-of-type(1){animation:flash .4s -.4s linear infinite}@keyframes flash{0%{opacity:0}50%{opacity:.5}100%{opacity:1}} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d3a69441..4989157c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13475,8 +13475,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", - "dev": true, - "requires": {} + "dev": true }, "@webpack-cli/info": { "version": "1.4.1", @@ -13491,8 +13490,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", - "dev": true, - "requires": {} + "dev": true }, "@xtuc/ieee754": { "version": "1.2.0", @@ -13532,15 +13530,13 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "requires": {} + "dev": true }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "aggregate-error": { "version": "3.1.0", @@ -13597,8 +13593,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "amdefine": { "version": "1.0.1", @@ -18053,8 +18048,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", - "dev": true, - "requires": {} + "dev": true }, "karma-jasmine-html-reporter": { "version": "0.2.2", @@ -18396,8 +18390,7 @@ "version": "8.4.1", "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", - "dev": true, - "requires": {} + "dev": true }, "marked": { "version": "4.0.12", @@ -21759,8 +21752,7 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "dev": true, - "requires": {} + "dev": true } } }, @@ -21778,8 +21770,7 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/webpack-shell-plugin-next/-/webpack-shell-plugin-next-2.2.2.tgz", "integrity": "sha512-2HeC1e0cCvTgA3SD4XPAD69DnILM92mCschrtKdlLRORHCR+oG7xnibQMkVySxTAYWTQOcBRHlqa88x4syWwhQ==", - "dev": true, - "requires": {} + "dev": true }, "webpack-sources": { "version": "3.2.3", @@ -21934,8 +21925,7 @@ "version": "8.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true, - "requires": {} + "dev": true }, "xmlcreate": { "version": "2.0.4", diff --git a/package.json b/package.json index d14560b2..b2a342d3 100644 --- a/package.json +++ b/package.json @@ -3,11 +3,15 @@ "version": "2.2.2", "description": "The Extensions SDK allows you to extend Contentstack’s UI by helping you create Custom Fields, Custom Widgets, and Dashboard Widgets.", "main": "dist/ui-extension-sdk.js", + "files": [ + "dist" + ], "scripts": { "test": "karma start --single-run --browsers ChromeHeadless karma.conf.js", "test-local": "karma start --single-run", "generate:docs": "node_modules/.bin/jsdoc --configure .jsdoc.json --verbose", "build": "npx webpack", + "prepare": "npm run build", "generate:sri": "node ./subresourceIntegrity.js", "generate:readme": "npm run generate:sri && npx @appnest/readme generate" },