Plugin Directory

Changeset 3394506


Ignore:
Timestamp:
11/12/2025 04:28:20 PM (3 months ago)
Author:
anyapi
Message:

Update trunk to version 1.1.3

Location:
anyapi/trunk
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • anyapi/trunk/anyapi.php

    r3376733 r3394506  
    88 * Plugin Name:       AnyAPI
    99 * Plugin URI:        https://www.anyapiplugin.com
    10  * Description:       No-code REST API integration for WooCommerce. Connect orders to any API with webhooks, API logs, and easy setup in minutes
    11  * Version:           1.1.2
     10 * Description:       No-Code WooCommerce REST API Integration. Connect Orders to any APIs with Automations, JSON Filter, API logs, and Easy Setup in Minutes.
     11 * Version:           1.1.3
    1212 * Author:            JC
    1313 * Author URI:        https://www.anyapiplugin.com
     
    2222if ( ! function_exists( 'add_action' ) ) { exit; }
    2323
    24 define( 'ANYAPI_VERSION', '1.1.2' );
     24define( 'ANYAPI_VERSION', '1.1.3' );
    2525define( 'ANYAPI_ASSETS', '1.0.0' );
    2626
  • anyapi/trunk/assets/css/style.css

    r3376733 r3394506  
    173173  background-color: #f34a4a;
    174174}
     175.tag--cap {
     176  color: #f34a4a;
     177  background-color: #11111a;
     178}
    175179.tag--disable {
    176180  color: #fff;
     
    248252  color: #f34a4a;
    249253}
     254.btn--full.small {
     255  font-size: 0.9rem;
     256  border-radius: 26px;
     257  font-weight: 500;
     258}
    250259.btn--outline:link,
    251260.btn--outline:visited {
     
    464473  transition: all 0.4s;
    465474}
     475.notice-action-button {
     476  float: right;
     477  margin-top: -66px;
     478}
     479.action-tags {
     480  margin-bottom: 1.2rem;
     481  display: flex;
     482  flex-wrap: wrap;
     483  gap: 0.8rem 0.2rem;
     484}
     485.tag-item {
     486  flex: 0 0 calc(50% - 0.1em);
     487  display: flex;
     488  flex-direction: column;
     489  box-sizing: border-box;
     490}
     491.tag-wrapper {
     492  display: flex;
     493  align-items: center;
     494  gap: 0.4rem;
     495  margin-bottom: 0.3rem;
     496}
     497.tag-wrapper .tag {
     498  flex-shrink: 0;
     499  white-space: nowrap;
     500}
     501.tag-wrapper .image-container {
     502  flex-shrink: 0;
     503}
     504.tag-wrapper .image-container img {
     505  display: block;
     506}
     507.tag-desc {
     508  margin: 0;
     509  font-size: 0.85rem;
     510  color: #666;
     511  line-height: 1.4;
     512  word-break: break-word;
     513}
    466514.api-input-form {
    467515  display: grid;
     
    587635  text-align: right;
    588636}
    589 .image-container {
     637.api-label {
     638  display: flex;
     639  align-items: center;
     640  gap: 6px;
     641  font-weight: 500;
     642  cursor: default;
     643}
     644.image-wrapper {
    590645  position: relative;
    591   display: inline-block;
     646  display: inline-flex;
     647  align-items: center;
    592648}
    593649.image-info {
    594650  display: none;
    595   background-color: #fff;
    596   padding: 1px;
     651  position: absolute;
     652  left: 100%;
     653  top: 50%;
     654  transform: translateY(-50%);
     655  margin-left: 10px;
     656  background: #fff;
     657  padding: 8px 12px;
    597658  border: 1px solid #ccc;
    598659  border-radius: 5px;
    599 }
    600 .image-container:hover .image-info {
     660  font-size: 13px;
     661  white-space: nowrap;
     662  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
     663  z-index: 10;
     664}
     665.image-info::before {
     666  content: "";
     667  position: absolute;
     668  top: 50%;
     669  left: -16px;
     670  transform: translateY(-50%);
     671  border: 8px solid transparent;
     672  border-right-color: #ccc;
     673}
     674.image-info::after {
     675  content: "";
     676  position: absolute;
     677  top: 50%;
     678  left: -14px;
     679  transform: translateY(-50%);
     680  border: 7px solid transparent;
     681  border-right-color: #fff;
     682  z-index: 1;
     683}
     684.image-wrapper:hover .image-info {
    601685  display: block;
    602686}
  • anyapi/trunk/assets/css/style.css.map

    r3376733 r3394506  
    1 {"version":3,"sources":["modules/tabs.scss","modules/button.scss","modules/checkbox.scss","modules/table.scss","modules/form.scss","modules/features.scss","modules/pretty.scss","modules/general.scss","modules/desert.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":[".nav-tabs,\n.nav-tabs-tools,\n.nav-tabs-filter,\n.nav-tabs-api,\n.nav-tabs-apiauth {\n  float: left;\n  width: 100%;\n  margin: 0;\n  list-style-type: none;\n  border-bottom: 1px solid transparent;\n\n  > li {\n    float: left;\n    margin-bottom: -1px;\n\n    > a {\n      margin-right: 2px;\n      line-height: 1.5;\n      padding: 10px;\n      border: 1px solid transparent;\n      border-radius: 4px 4px 0 0;\n      float: left;\n      text-decoration: none;\n\n      &:hover {\n        border-color: #eee #eee #ddd;\n      }\n    }\n\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: #555;\n        cursor: default;\n        background-color: #fff;\n        border-color: transparent;\n      }\n    }\n  }\n}\n\n.tab-content > .tab-pane,\n.tab-content-tools > .tab-pane-tools {\n  float: left;\n  width: 98%;\n  display: none;\n\n  &.active {\n    display: block;\n    padding: 10px;\n    background-color: #fff;\n    box-shadow: 0 5px 4px -2px rgba(0, 0, 0, 0.15);\n  }\n}\n\n#top-btn {\n  display: none;\n  position: fixed;\n  bottom: 20px;\n  right: 30px;\n  z-index: 99;\n  font-size: 18px;\n  border: none;\n  outline: none;\n  background-color: purple;\n  color: white;\n  cursor: pointer;\n  padding: 15px;\n  border-radius: 4px;\n}\n\n#top-btn:hover {\n  background-color: #555;\n}\n","/**************************/\n/* Tags */\n/**************************/\n\n.tag {\n  display: inline-block;\n  text-decoration: none;\n  padding: 0.4rem 0.8rem; /* 0.4 0.8*/\n  font-size: 0.9rem; /* 1.2 */\n  color: none;\n  border-radius: 100px;\n  font-weight: 300;\n}\n\n.tag.small {\n  font-size: 0.8rem;\n  border-radius: 3px;\n  font-weight: 300;\n}\n\n.tag.medium {\n  font-size: 0.9rem;\n  border-radius: 15px;\n  font-weight: 300;\n}\n\n.tag.large {\n  font-size: 1.4rem;\n  border-radius: 15px;\n  font-weight: 400;\n}\n\n.tag.step {\n  font-size: 1.2rem;\n  border-radius: 50px;\n  font-weight: 500;\n}\n\n.tag.uppercase {\n  text-transform: uppercase;\n}\n\n/* Basic */\n.tag--woo {\n  color: #eee;\n  background-color: rgb(108, 59, 164);\n}\n\n.tag--woorev {\n  color: rgb(108, 59, 164);\n  background-color: #eee;\n}\n\n.tag--wooadv {\n  color: #eee;\n  background-color: rgb(218, 179, 254);\n}\n\n.tag--auth {\n  color: #333;\n  background-color: rgb(246, 169, 14);\n}\n\n.tag--attr {\n  color: #333;\n  background-color: rgb(206, 206, 206);\n}\n\n.tag--large {\n  color: #333;\n  background-color: #eee;\n}\n\n/* Attributes */\n.tag--order {\n  color: #eee;\n  background-color: rgb(132, 95, 132);\n}\n\n.tag--billing {\n  color: #333;\n  background-color: rgb(206, 206, 206);\n}\n\n.tag--fields {\n  color: lightblue;\n  background-color: rgb(25, 25, 25);\n}\n\n/* Features */\n.tag--codefree {\n  // background-color: rgb(249, 222, 0);\n  color: #fff;\n  background-color: #11111a;\n}\n\n.tag--secure {\n  color: #fff;\n  background-color: rgb(10, 151, 218);\n}\n\n.tag--notice {\n  // background-color: #dd6413;\n  color: #fff;\n  background-color: #4a4af3;\n}\n\n.tag--new {\n  color: #11111a;\n  background-color: #f34a4a;\n}\n\n/* License */\n.tag--disable {\n  color: #fff;\n  background-color: rgb(231, 0, 0);\n}\n\n.tag--enable {\n  color: #fff;\n  background-color: #43aa8b;\n  // background-color: rgb(48, 154, 62);\n}\n\n/**************************/\n/* Dynamic Tags */\n/**************************/\n\n.tag.available:hover {\n  cursor: pointer;\n  opacity: 0.7;\n}\n\n.tag.selected {\n  cursor: pointer;\n  opacity: 0.7;\n}\n\n.tag.disabled {\n  color: white;\n  background-color: #d2d2d2;\n  /* text-decoration: line-through; */\n  pointer-events: none;\n}\n\n.tag.pro {\n  color: #333;\n  background-color: #fdf2e9;\n  cursor: not-allowed;\n}\n\n/* Step */\n.step-tag {\n  color: #eee;\n  background-color: #ccc;\n  cursor: pointer;\n  text-transform: uppercase;\n}\n\n.step-tag.current {\n  background-color: rgb(108, 59, 164);\n}\n\n.order-api-step > .step-pane {\n  display: none;\n  &.active {\n    display: block;\n  }\n}\n\n.notice-tag {\n  color: #eee;\n  background-color: #ccc;\n}\n\n/**************************/\n/* Buttons */\n/**************************/\n\n.btn,\n.btn:link,\n.btn:visited {\n  display: inline-block;\n  text-decoration: none;\n  font-size: 1rem; /* 2 */\n  font-weight: 400;\n  padding: 0.8rem 1.6rem; /* 1.6 3.2 */\n  border-radius: 9px; /* 9 */\n\n  /* default color*/\n  // background-color: #f34a4a;\n  color: #11111a;\n\n  /* Only necessary for .btn */\n  border: none;\n  cursor: pointer;\n  font-family: inherit;\n\n  /* Put transition on original \"state\" */\n  /* transition: background-color 0.3s; */\n  transition: all 0.3s;\n}\n\n.btn.medium {\n  font-size: 0.9rem;\n  font-weight: 400;\n  padding: 0.6rem 1rem;\n}\n\n.btn--full:link,\n.btn--full:visited {\n  // background-color: #e67e22;\n  // color: #fff;\n  background-color: #f34a4a;\n  color: #11111a;\n}\n\n.btn--full:hover,\n.btn--full:active {\n  // background-color: #cf711f;\n  background-color: #11111a;\n  color: #f34a4a;\n}\n\n.btn--outline:link,\n.btn--outline:visited {\n  // background-color: #fff;\n  background-color: #2f2f48;\n  // color: #555;\n}\n\n.btn--outline:hover,\n.btn--outline:active {\n  // background-color: #fdf2e9;\n  background-color: #11111a;\n  color: #fff;\n\n  // border: 3px solid #fff;\n  /* Trick to add border inside */\n  // box-shadow: inset 0 0 0 3px #fff;\n}\n\n/* Prev Next Save */\n.next-btn,\n.prev-btn,\n.save-btn,\n.back-btn,\n.save-settings {\n  text-align: right;\n  padding: 1px;\n}\n\n.btn-next,\n.btn-prev,\n.btn-save,\n.btn-back {\n  float: right;\n}\n","/* $on: #009eea; */\n$on: rgb(108, 59, 164);\n$bg: #d9cb9e;\n$off: #8c8c8c;\n\n@mixin center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n@mixin userSelect($value) {\n  -webkit-touch-callout: $value;\n  -webkit-user-select: $value;\n  -khtml-user-select: $value;\n  -moz-user-select: $value;\n  -ms-user-select: $value;\n  user-select: $value;\n}\n\n@mixin ui-toggle($height, $on, $off) {\n  margin: 0;\n  padding: 0;\n\n  input[type=\"checkbox\"] {\n    display: none;\n\n    &:checked + label {\n      border-color: $on;\n      background: $on;\n      box-shadow: inset 0 0 0 #{$height / 2} $on;\n\n      > div {\n        margin-left: $height;\n      }\n    }\n  }\n\n  label {\n    transition: all 200ms ease;\n    display: inline-block;\n    position: relative;\n\n    @include userSelect(none);\n\n    background: $off;\n    box-shadow: inset 0 0 0 0 $on;\n    border: 2px solid $off;\n    border-radius: $height + 2;\n    width: $height * 2;\n    height: $height;\n\n    div {\n      transition: all 200ms ease;\n      background: #ffffff;\n      width: $height;\n      height: $height;\n      border-radius: $height / 2;\n    }\n\n    &:hover,\n    & > div:hover {\n      cursor: pointer;\n    }\n  }\n}\n\ndiv.ui-toggle {\n  @include ui-toggle(16px, $on, $off);\n\n  &.mb-10 {\n    margin-bottom: 10px;\n  }\n}\n",".api-table {\n  width: 100%;\n  border-spacing: 5px;\n  text-align: left;\n\n  &,\n  & th,\n  & td {\n    border: 1px solid #ccc;\n    border-collapse: collapse;\n    padding: 10px;\n  }\n\n  & th {\n    background-color: #f5f5f5;\n  }\n}\n\n.tag-table {\n  width: 100%;\n  border-spacing: 5px;\n  text-align: left;\n\n  &,\n  & th,\n  & td {\n    border: 0.8px solid #ccc;\n    border-collapse: collapse;\n    padding: 5px;\n  }\n\n  & th {\n    background-color: none;\n  }\n}\n\n.text-center {\n  text-align: center;\n}\n",".inline-block {\n  display: inline-block;\n}\n\n.text-left {\n  text-align: left;\n}\n\n.text-right {\n  text-align: right;\n}\n\n.w-50 {\n  width: 49%;\n}\n\n.inline {\n  display: inline-block;\n}\n\n.meta-label {\n  display: inline-block;\n  font-weight: bold;\n  margin-bottom: 5px;\n}\n\n.meta-container {\n  display: block;\n  margin-top: 20px;\n}\n","/**************************/\n/* Feature CSS */\n/**************************/\n\n.section-features {\n  padding: 9.6rem 0;\n}\n\n.feature {\n  box-shadow: 0 2.4rem 4.8rem rgba(0, 0, 0, 0.075);\n  border-radius: 11px;\n  overflow: hidden;\n  transition: all 0.4s;\n}\n\n/* card action */\n.feature:hover {\n  transform: translateY(-1.2rem);\n  box-shadow: 0 3.2rem 6.4rem rgba(0, 0, 0, 0.06);\n}\n\n/* content backgrpund */\n.feature-content {\n  font-size: 0.9rem; /* 1.8 */\n  line-height: 1.8;\n  align-items: center;\n  padding: 1.6rem 2.4rem 2.4rem 2.4rem;\n  /* 3.2rem 4.8rem 4.8rem 4.8rem;*/\n}\n\n.feature-cards {\n  padding: 1.6rem 2.4rem 2.4rem 2.4rem;\n}\n\n.feature-tags {\n  margin-bottom: 1.2rem; /* 1.2rem */\n  display: flex;\n  gap: 0.4rem;\n}\n\n.feature-dashboard-tags {\n  margin-top: 2.2rem; /* 1.2rem */\n  margin-bottom: 2.2rem; /* 1.2rem */\n  display: flex;\n  gap: 0.4rem;\n}\n\n.feature-hidden {\n  margin-bottom: 1.2rem;\n  gap: 0.4rem;\n}\n\n.feature-name {\n  font-size: 1.2rem; /* 2.4 */\n  color: #333;\n  font-weight: 600;\n  margin-bottom: 1.6rem; /* 3.2 */\n}\n\n.feature-info {\n  font-size: 0.9rem; /*1.8 */\n  line-height: 1.6; /*1.8 */\n}\n\n.feature-attributes {\n  list-style: none;\n  display: flex;\n  flex-direction: column;\n  gap: 0.2rem; /* 2 */\n}\n\n.feature-attribute {\n  font-size: 1rem; /* 1.8 */\n  display: flex;\n  align-items: center;\n  gap: 0.8rem; /* 1.6 */\n}\n\n.feature-icon {\n  height: 2.4rem;\n  width: 2.4rem;\n  color: #e67e22;\n}\n\n.feature-img {\n  width: 100%;\n}\n\n.call-to-action {\n  text-align: center;\n  margin-top: 2.4rem; /* 4.8 */\n}\n\n.all-features {\n  text-align: center;\n  font-size: 1rem; /* 1.8 */\n}\n\n/* pagination  */\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #555;\n  background-color: #fae5d3;\n  border: 2px solid rgb(255, 255, 255);\n  border-radius: 11px;\n}\n\n/**************************/\n/* Card CSS no movement */\n/**************************/\n\n.card-content {\n  box-shadow: 0 2.4rem 4.8rem rgba(0, 0, 0, 0.075);\n  border-radius: 11px;\n  overflow: hidden;\n  transition: all 0.4s;\n}\n\n/**************************/\n/* API input form  */\n/**************************/\n\n.api-input-form {\n  display: grid;\n  /* grid-template-columns: 0.5fr 1fr; */\n  border-radius: 11px;\n  overflow: hidden;\n  text-align: left;\n  /* padding: 1.8rem 0rem 1.8rem 1.8rem; */\n  padding: 0px 0px 18px 0px;\n  /* font-size: 1.8rem; */\n  font-size: 18px;\n  line-height: 1.8;\n}\n\n.api-input-form label {\n  /* display: block; */\n  /* font-size: 1.6rem; */\n  font-size: 16px;\n  font-weight: 500;\n  /*margin-bottom: 1.2rem; */\n  margin-bottom: 12px;\n  margin-top: 12px;\n}\n\n.api-input-form input,\n.api-input-form textarea,\n.api-input-form select {\n  width: 60%;\n  /* padding: 0.7rem;\n  font-size: 1.5rem; */\n  padding: 7px;\n  font-size: 15px;\n  font-family: inherit;\n  color: inherit;\n  border-radius: 9px;\n  background-color: #fdf2e9;\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.api-input-form input::placeholder,\n.api-input-form textarea::placeholder {\n  color: #aaa;\n}\n\n.api-input-form *:focus {\n  outline: none;\n  /* box-shadow: 0 0 0 0.8rem rgba(253, 242, 233, 0.5); */\n  box-shadow: 0 0 0 16px rgba(253, 242, 233, 0.5);\n}\n\n/**************************/\n/* Advance mode */\n/**************************/\n\n.adv-box-container {\n  display: flex;\n  flex-direction: row;\n  padding: 0px 0px;\n}\n\n.adv-box {\n  width: 350px;\n}\n\n.adv-pre {\n  width: 650px;\n}\n\n.adv-box-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin: 0 10px 10px;\n}\n\n.adv-box-title {\n  font-weight: bold;\n  font-size: 0.9rem; /* 1.8 */\n  margin: 0;\n}\n\n.adv-box-table-container {\n  height: 250px;\n  margin-bottom: 15px;\n  overflow: auto;\n  border: 1px solid #bbb;\n  border-radius: 5px;\n}\n\n/* Idle */\n.adv-minus-btn {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 0.4rem;\n}\n\n/* Delete button */\n.adv-box-btn {\n  border-radius: 5px;\n  transition: background-color 0.15s ease-in-out;\n  user-select: none;\n  border: none;\n  cursor: pointer;\n  font-size: 14px;\n  height: 35px;\n}\n\n.adv-box-btn.circle {\n  border-radius: 50px;\n}\n\n/* Button icon */\n.adv-box-btn-icon {\n  height: 3px;\n  width: 12px;\n  border-radius: 5px;\n  background-color: white;\n}\n\n.adv-box-btn-delete {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background-color: #e53c4a;\n  height: 22px;\n  width: 22px;\n}\n\n.adv-box-btn-delete:hover {\n  background-color: #db3240;\n}\n\n.adv-box-btn-delete:active {\n  background-color: #cc2331;\n}\n\n.adv-box td .adv-box-btn-delete {\n  margin: auto;\n}\n\n.adv-box-footer {\n  display: flex;\n  flex-direction: column;\n}\n\n.adv-box-total {\n  flex: 1;\n  font-size: 14px;\n  font-weight: bold;\n  margin: 0 10px 15px;\n  padding: 0;\n  text-align: right;\n}\n\n/**************************/\n/* Tooltips*/\n/**************************/\n\n.image-container {\n  position: relative;\n  display: inline-block;\n}\n\n.image-info {\n  display: none;\n  /* position: absolute; */\n  background-color: #fff;\n  padding: 1px;\n  border: 1px solid #ccc;\n  border-radius: 5px;\n}\n\n.image-container:hover .image-info {\n  display: block;\n}\n\n/**************************/\n/* Idle */\n/**************************/\n\n.aa-legend {\n  list-style-type: none;\n  margin: 17rem 0rem 0rem 5rem;\n}\n\n.aa-legend-item {\n  display: flex;\n  align-items: center;\n  margin-bottom: 10px;\n  padding: 0;\n}\n\n.aa-legend-description {\n  margin: 0 0 0 10px;\n}\n\n.aa-legend-bullet {\n  width: 22px;\n  height: 22px;\n  border-radius: 5px 5px 0 0;\n}\n\n.color1 {\n  color: white;\n  background-color: #277da1;\n}\n.color2 {\n  color: white;\n  background-color: #43aa8b;\n}\n.color3 {\n  color: white;\n  background-color: #f8961e;\n}\n","/* Scroll control */\n.scroll {\n  /* background-color: #e9ecef;*/\n  padding: 0px;\n  /* How elements that don't fit into container appear */\n  overflow: auto;\n  display: flex;\n  flex-direction: column;\n  gap: 40px;\n}\n/* Api Tools Section*/\n.pretty {\n  background-color: #adb5bd;\n  flex-shrink: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.pretty.sendapi {\n  height: 555px;\n}\n\n.pretty.filterapi {\n  height: 222px;\n  width: 777px;\n}\n\n.pretty.manageapi {\n  height: 444px;\n}\n\n/* Order Api Section*/\n.pretty.api {\n  height: 333px;\n}\n\n.pretty.advance {\n  height: 250px;\n  color: lightblue;\n}\n\n.pretty.props {\n  height: 333px;\n  align-items: left;\n}\n/* Hide pretty */\n.json {\n  display: none;\n}\n",".container {\n  /* 1140px */\n  max-width: 80rem;\n  /* max-width: 80rem;\n  /*120rem*/\n  padding: 0 3.2rem;\n  margin: 0 auto;\n}\n\n.grid {\n  display: grid;\n  column-gap: 2.2rem; /* 6.4 */\n  row-gap: 9.6rem;\n  /* margin-bottom: 9.6rem; */\n}\n\n/*\n.grid:not(:last-child) {\n  margin-bottom: 9.6rem;\n}\n*/\n.grid--2-cols {\n  grid-template-columns: repeat(2, 1fr);\n}\n\n.grid--3-cols {\n  grid-template-columns: repeat(3, 1fr);\n}\n\n.grid--4-cols {\n  grid-template-columns: repeat(4, 1fr);\n}\n\n.grid--5-cols {\n  grid-template-columns: repeat(5, 1fr);\n}\n\n.grid--center-v {\n  align-items: center;\n}\n\n/**************************/\n/* HEADER */\n/**************************/\n\n.header {\n  background: #fff;\n  box-sizing: border-box;\n  padding: 0;\n  position: fixed;\n  width: calc(100% - 160px);\n  top: 32px;\n  z-index: 1001;\n}\n\n.header-title {\n  padding: 1.2rem 0rem 1.2rem 0rem;\n}\n\n/**************************/\n/* General */\n/**************************/\n\n.heading-primary,\n.heading-secondary,\n.heading-tertiary {\n  font-weight: 700;\n  color: #333;\n  /* color: #45260a; */\n  /* color: #343a40; */\n  letter-spacing: -0.5px;\n}\n\n.heading-primary {\n  font-size: 5.2rem;\n  line-height: 1.05;\n  margin-bottom: 3.2rem;\n}\n\n.heading-secondary {\n  font-size: 4.4rem;\n  line-height: 1.2;\n  margin-bottom: 9.6rem;\n}\n\n.heading-tertiary {\n  font-size: 3rem;\n  line-height: 1.2;\n  margin-bottom: 3.2rem;\n}\n\n.subheading {\n  display: block;\n  font-size: 1.6rem;\n  font-weight: 500;\n  color: #cf711f;\n  text-transform: uppercase;\n  margin-bottom: 1.6rem;\n  letter-spacing: 0.75px;\n}\n\n.list {\n  list-style: none;\n  display: flex;\n  flex-direction: column;\n  gap: 1.6rem;\n}\n\n.list-item {\n  font-size: 1.8rem;\n  display: flex;\n  align-items: center;\n  gap: 1.6rem;\n}\n\n.list-icon {\n  width: 3rem;\n  height: 3rem;\n  color: #e67e22;\n}\n\n*:focus {\n  outline: none;\n  /* outline: 4px dotted #e67e22; */\n  /* outline-offset: 8px; */\n  box-shadow: 0 0 0 0.8rem rgba(230, 125, 34, 0.5);\n}\n\n/* HELPER/SETTINGS CLASSES */\n.margin-right-sm {\n  margin-right: 1.6rem !important;\n}\n\n.margin-bottom-md {\n  margin-bottom: 4.8rem !important;\n}\n\n.center-text {\n  text-align: center;\n}\n\nstrong {\n  font-weight: 500;\n}\n\n/**************************/\n/* SECTION */\n/**************************/\n\n.section-pricing {\n  padding: 9.6rem 0;\n}\n\n.pricing-plan {\n  border-radius: 11px;\n\n  width: 75%;\n}\n\n.pricing-plan--starter {\n  justify-self: end;\n  border: 2px solid #fdf2e9;\n  padding: 4.6rem;\n}\n\n.pricing-plan--complete {\n  background-color: #fdf2e9;\n  padding: 4.8rem;\n  position: relative;\n  overflow: hidden;\n}\n\n.pricing-plan--complete::after {\n  content: \"Best value\";\n  position: absolute;\n  top: 6%;\n  right: -18%;\n\n  text-transform: uppercase;\n  font-size: 1.4rem;\n  font-weight: 700;\n  color: #333;\n  background-color: #ffd43b;\n  padding: 0.8rem 8rem;\n  transform: rotate(45deg);\n}\n\n.plan-header {\n  text-align: center;\n  margin-bottom: 4.8rem;\n}\n\n.plan-name {\n  color: #cf711f;\n  font-weight: 600;\n  font-size: 2rem;\n  text-transform: uppercase;\n  letter-spacing: 0.75;\n  margin-bottom: 3.2rem;\n}\n\n.plan-price {\n  font-size: 6.2rem;\n  font-weight: 600;\n  color: #333;\n  margin-bottom: 1.6rem;\n}\n\n.plan-price span {\n  font-size: 3rem;\n  font-weight: 500;\n  margin-right: 0.8rem;\n}\n\n.plan-text {\n  font-size: 1.6rem;\n  line-height: 1.6;\n  color: #6f6f6f;\n}\n\n.plan-sing-up {\n  text-align: center;\n  margin-top: 4.8rem;\n}\n\n.plan-details {\n  font-size: 1.6rem;\n  line-height: 1.6;\n  text-align: center;\n}\n\n.feature-icon {\n  color: #e67e22;\n  height: 3.2rem;\n  width: 3.2rem;\n  background-color: #fdf2e9;\n  margin-bottom: 3.2rem;\n  padding: 1.6rem;\n  border-radius: 50%;\n}\n\n.feature-title {\n  font-size: 2.4rem;\n  color: #333;\n  font-weight: 700;\n  margin-bottom: 1.6rem;\n}\n\n.feature-text {\n  font-size: 1.8rem;\n  line-height: 1.8;\n}\n","/* desert scheme ported from vim to google prettify */\r\npre.prettyprint {\r\n  display: block;\r\n  background-color: #333;\r\n}\r\npre .nocode {\r\n  background-color: none;\r\n  color: #000;\r\n}\r\npre .str {\r\n  color: #ffa0a0;\r\n} /* string  - pink */\r\npre .kwd {\r\n  color: #f0e68c;\r\n  font-weight: bold;\r\n}\r\npre .com {\r\n  color: #87ceeb;\r\n} /* comment - skyblue */\r\npre .typ {\r\n  color: #98fb98;\r\n} /* type    - lightgreen */\r\npre .lit {\r\n  color: #cd5c5c;\r\n} /* literal - darkred */\r\npre .pun {\r\n  color: #fff;\r\n} /* punctuation */\r\npre .pln {\r\n  color: #fff;\r\n} /* plaintext */\r\npre .tag {\r\n  color: #f0e68c;\r\n  font-weight: bold;\r\n} /* html/xml tag    - lightyellow */\r\npre .atn {\r\n  color: #bdb76b;\r\n  font-weight: bold;\r\n} /* attribute name  - khaki */\r\npre .atv {\r\n  color: #ffa0a0;\r\n} /* attribute value - pink */\r\npre .dec {\r\n  color: #98fb98;\r\n} /* decimal         - lightgreen */\r\n\r\n/* Specify class=linenums on a pre to get line numbering */\r\nol.linenums {\r\n  margin-top: 0;\r\n  margin-bottom: 0;\r\n  color: #aeaeae;\r\n} /* IE indents via margin-left */\r\nli.L0,\r\nli.L1,\r\nli.L2,\r\nli.L3,\r\nli.L5,\r\nli.L6,\r\nli.L7,\r\nli.L8 {\r\n  list-style-type: none;\r\n}\r\n/* Alternate shading for lines */\r\nli.L1,\r\nli.L3,\r\nli.L5,\r\nli.L7,\r\nli.L9 {\r\n}\r\n\r\n@media print {\r\n  pre.prettyprint {\r\n    background-color: none;\r\n  }\r\n  pre .str,\r\n  code .str {\r\n    color: #060;\r\n  }\r\n  pre .kwd,\r\n  code .kwd {\r\n    color: #006;\r\n    font-weight: bold;\r\n  }\r\n  pre .com,\r\n  code .com {\r\n    color: #600;\r\n    font-style: italic;\r\n  }\r\n  pre .typ,\r\n  code .typ {\r\n    color: #404;\r\n    font-weight: bold;\r\n  }\r\n  pre .lit,\r\n  code .lit {\r\n    color: #044;\r\n  }\r\n  pre .pun,\r\n  code .pun {\r\n    color: #440;\r\n  }\r\n  pre .pln,\r\n  code .pln {\r\n    color: #000;\r\n  }\r\n  pre .tag,\r\n  code .tag {\r\n    color: #006;\r\n    font-weight: bold;\r\n  }\r\n  pre .atn,\r\n  code .atn {\r\n    color: #404;\r\n  }\r\n  pre .atv,\r\n  code .atv {\r\n    color: #060;\r\n  }\r\n}\r\n"]}
     1{"version":3,"sources":["modules/tabs.scss","modules/button.scss","modules/checkbox.scss","modules/table.scss","modules/form.scss","modules/features.scss","modules/pretty.scss","modules/general.scss","modules/desert.scss"],"names":[],"mappings":"AAAA,2EAKE,UAAW,CACX,UAAW,CACX,QAAS,CACT,oBAAqB,CACrB,mCAAoC,CATtC,0FAYI,UAAW,CACX,kBAAmB,CAbvB,oGAgBM,gBAAiB,CACjB,eAAgB,CAChB,YAAa,CACb,4BAA6B,CAC7B,yBAA0B,CAC1B,UAAW,CACX,oBAAqB,CAtB3B,kIAyBQ,2BAA4B,CAzBpC,idAiCQ,UAAW,CACX,cAAe,CACf,qBAAsB,CACtB,wBAAyB,CAC1B,0DAOL,UAAW,CACX,SAAU,CACV,YAAa,CAJf,wEAOI,aAAc,CACd,YAAa,CACb,qBAAsB,CACtB,0CAA8C,CAC/C,SAID,YAAa,CACb,cAAe,CACf,WAAY,CACZ,UAAW,CACX,UAAW,CACX,cAAe,CACf,WAAY,CACZ,YAAa,CACb,uBAAwB,CACxB,WAAY,CACZ,cAAe,CACf,YAAa,CACb,iBAAkB,CACnB,eAGC,qBAAsB,CACvB,KCrEC,oBAAqB,CACrB,oBAAqB,CACrB,qBAAsB,CACtB,gBAAiB,CACjB,UAAW,CACX,mBAAoB,CACpB,eAAgB,CACjB,WAGC,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CACjB,YAGC,gBAAiB,CACjB,kBAAmB,CACnB,eAAgB,CACjB,WAGC,gBAAiB,CACjB,kBAAmB,CACnB,eAAgB,CACjB,UAGC,gBAAiB,CACjB,kBAAmB,CACnB,eAAgB,CACjB,eAGC,wBAAyB,CAC1B,UAIC,UAAW,CACX,wBAAmC,CACpC,aAGC,aAAwB,CACxB,qBAAsB,CACvB,aAGC,UAAW,CACX,wBAAoC,CACrC,WAGC,UAAW,CACX,wBAAmC,CACpC,WAGC,UAAW,CACX,wBAAoC,CACrC,YAGC,UAAW,CACX,qBAAsB,CACvB,YAIC,UAAW,CACX,wBAAmC,CACpC,cAGC,UAAW,CACX,wBAAoC,CACrC,aAGC,eAAgB,CAChB,wBAAiC,CAClC,eAKC,UAAW,CACX,wBAAyB,CAC1B,aAGC,UAAW,CACX,wBAAmC,CACpC,aAIC,UAAW,CACX,wBAAyB,CAC1B,UAGC,aAAc,CACd,wBAAyB,CAC1B,UAGC,aAAc,CACd,wBAAyB,CAC1B,cAIC,UAAW,CACX,wBAAgC,CACjC,aAGC,UAAW,CACX,wBAAyB,CAE1B,qBAOC,cAAe,CACf,WAAY,CACb,cAGC,cAAe,CACf,WAAY,CACb,cAGC,WAAY,CACZ,wBAAyB,CAEzB,mBAAoB,CACrB,SAGC,UAAW,CACX,wBAAyB,CACzB,kBAAmB,CACpB,UAIC,UAAW,CACX,qBAAsB,CACtB,cAAe,CACf,wBAAyB,CAC1B,kBAGC,wBAAmC,CACpC,2BAGC,YAAa,CADf,kCAGI,aAAc,CACf,YAID,UAAW,CACX,qBAAsB,CACvB,4BASC,oBAAqB,CACrB,oBAAqB,CACrB,cAAe,CACf,eAAgB,CAChB,qBAAsB,CACtB,iBAAkB,CAIlB,aAAc,CAGd,WAAY,CACZ,cAAe,CACf,mBAAoB,CAIpB,mBAAoB,CACrB,YAGC,gBAAiB,CACjB,eAAgB,CAChB,mBAAoB,CACrB,mCAMC,wBAAyB,CACzB,aAAc,CACf,mCAKC,wBAAyB,CACzB,aAAc,CACf,iBAGC,gBAAiB,CACjB,kBAAmB,CACnB,eAAgB,CACjB,yCAKC,wBAAyB,CAE1B,yCAKC,wBAAyB,CACzB,UAAW,CAKZ,uDAQC,gBAAiB,CACjB,WAAY,CACb,wCAMC,WAAY,CACb,cCtPC,QAAS,CACT,SAAU,CAEV,qCACE,YAAa,CAEb,mDACE,oBA5BgB,CA6BhB,kBA7BgB,CA8BhB,kCA9BgB,CAgChB,uDACE,gBAmCiB,CAlClB,oBAKH,yBAA0B,CAC1B,oBAAqB,CACrB,iBAAkB,CA7BpB,0BA+B0B,CA9B1B,wBA8B0B,CA5B1B,qBA4B0B,CA1B1B,gBA0B0B,CAExB,kBA3CS,CA4CT,gCA9CkB,CA+ClB,wBA7CS,CA8CT,kBAA0B,CAC1B,UAAkB,CAClB,WAkBqB,CAhBrB,wBACE,yBAA0B,CAC1B,kBAAmB,CACnB,UAamB,CAZnB,WAYmB,CAXnB,iBAA0B,CAC3B,wDAIC,cAAe,CAChB,oBAQD,kBAAmB,CACpB,WCxED,UAAW,CACX,kBAAmB,CACnB,eAAgB,CAHlB,uCAQI,qBAAsB,CACtB,wBAAyB,CACzB,YAAa,CAVjB,cAcI,wBAAyB,CAC1B,WAID,UAAW,CACX,kBAAmB,CACnB,eAAgB,CAHlB,uCAQI,uBAAwB,CACxB,wBAAyB,CACzB,WAAY,CAVhB,cAcI,qBAAsB,CACvB,aAID,iBAAkB,CACnB,cCrCC,oBAAqB,CACtB,WAGC,eAAgB,CACjB,YAGC,gBAAiB,CAClB,MAGC,SAAU,CACX,QAGC,oBAAqB,CACtB,YAGC,oBAAqB,CACrB,gBAAiB,CACjB,iBAAkB,CACnB,gBAGC,aAAc,CACd,eAAgB,CACjB,kBCxBC,gBAAiB,CAClB,SAGC,4CAAgD,CAChD,kBAAmB,CACnB,eAAgB,CAChB,mBAAoB,CACrB,eAIC,6BAA8B,CAC9B,2CAA+C,CAChD,iBAIC,gBAAiB,CACjB,eAAgB,CAChB,kBAAmB,CACnB,mCAAoC,CAErC,eAGC,mCAAoC,CACrC,cAGC,oBAAqB,CACrB,YAAa,CACb,UAAW,CACZ,wBAGC,iBAAkB,CAClB,oBAAqB,CACrB,YAAa,CACb,UAAW,CACZ,gBAGC,oBAAqB,CACrB,UAAW,CACZ,cAGC,gBAAiB,CACjB,UAAW,CACX,eAAgB,CAChB,oBAAqB,CACtB,cAGC,gBAAiB,CACjB,eAAgB,CACjB,oBAGC,eAAgB,CAChB,YAAa,CACb,qBAAsB,CACtB,UAAW,CACZ,mBAGC,cAAe,CACf,YAAa,CACb,kBAAmB,CACnB,UAAW,CACZ,cAGC,aAAc,CACd,YAAa,CACb,aAAc,CACf,aAGC,UAAW,CACZ,gBAGC,iBAAkB,CAClB,iBAAkB,CACnB,cAGC,iBAAkB,CAClB,cAAe,CAChB,WAIC,iBAAkB,CAClB,aAAc,CACd,sBAAuB,CACvB,gBAAiB,CACjB,gBAAiB,CACjB,UAAW,CACX,wBAAyB,CACzB,qBAAoC,CACpC,kBAAmB,CACpB,cAOC,4CAAgD,CAChD,kBAAmB,CACnB,eAAgB,CAChB,mBAAoB,CACrB,sBAOC,WAAY,CACZ,gBAAiB,CAClB,aAQC,oBAAqB,CACrB,YAAa,CACb,cAAe,CACf,iBAAkB,CACnB,UAGC,0BAA2B,CAC3B,YAAa,CAIb,qBAAsB,CACtB,qBAAsB,CACvB,aAGC,YAAa,CACb,kBAAmB,CACnB,UAAW,CACX,oBAAqB,CACtB,kBAGC,aAAc,CACd,kBAAmB,CACpB,8BAGC,aAAc,CACf,kCAGC,aAAc,CACf,UAGC,QAAS,CACT,iBAAkB,CAClB,UAAW,CACX,eAAgB,CAChB,qBAAsB,CACvB,gBAOC,YAAa,CAEb,kBAAmB,CACnB,eAAgB,CAChB,eAAgB,CAEhB,wBAAyB,CAEzB,cAAe,CACf,eAAgB,CACjB,sBAKC,cAAe,CACf,eAAgB,CAEhB,kBAAmB,CACnB,eAAgB,CACjB,sEAKC,SAAU,CAGV,WAAY,CACZ,cAAe,CACf,mBAAoB,CACpB,aAAc,CACd,iBAAkB,CAClB,wBAAyB,CACzB,oCAAwC,CACzC,oFAIC,UAAW,CAJZ,yEAIC,UAAW,CACZ,wBAGC,YAAa,CAEb,2CAA+C,CAChD,mBAOC,YAAa,CACb,kBAAmB,CACnB,eAAgB,CACjB,SAGC,WAAY,CACb,SAGC,WAAY,CACb,gBAGC,YAAa,CACb,kBAAmB,CACnB,6BAA8B,CAC9B,kBAAmB,CACpB,eAGC,gBAAiB,CACjB,gBAAiB,CACjB,QAAS,CACV,yBAGC,YAAa,CACb,kBAAmB,CACnB,aAAc,CACd,qBAAsB,CACtB,iBAAkB,CACnB,eAIC,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,UAAW,CACZ,aAIC,iBAAkB,CAClB,6CAA8C,CAC9C,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAAiB,CACjB,WAAY,CACZ,cAAe,CACf,cAAe,CACf,WAAY,CACb,oBAGC,kBAAmB,CACpB,kBAIC,UAAW,CACX,UAAW,CACX,iBAAkB,CAClB,sBAAuB,CACxB,oBAGC,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,wBAAyB,CACzB,WAAY,CACZ,UAAW,CACZ,0BAGC,wBAAyB,CAC1B,2BAGC,wBAAyB,CAC1B,gCAGC,WAAY,CACb,gBAGC,YAAa,CACb,qBAAsB,CACvB,eAGC,MAAO,CACP,cAAe,CACf,gBAAiB,CACjB,kBAAmB,CACnB,SAAU,CACV,gBAAiB,CAClB,WA0BC,YAAa,CACb,kBAAmB,CACnB,OAAQ,CACR,eAAgB,CAChB,cAAe,CAChB,eAIC,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACpB,YAGC,YAAa,CACb,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,0BAA2B,CAC3B,gBAAiB,CACjB,eAAgB,CAChB,gBAAiB,CACjB,qBAAsB,CACtB,iBAAkB,CAClB,cAAe,CACf,kBAAmB,CACnB,qCAAyC,CACzC,UAAW,CAdb,oBAkBI,UAAW,CACX,iBAAkB,CAClB,OAAQ,CACR,UAAW,CACX,0BAA2B,CAC3B,4BAA6B,CAC7B,uBAAwB,CAxB5B,mBA6BI,UAAW,CACX,iBAAkB,CAClB,OAAQ,CACR,UAAW,CACX,0BAA2B,CAC3B,4BAA6B,CAC7B,uBAAwB,CACxB,SAAU,CACX,iCAKD,aAAc,CACf,WAOC,oBAAqB,CACrB,2BAA4B,CAC7B,gBAGC,YAAa,CACb,kBAAmB,CACnB,kBAAmB,CACnB,SAAU,CACX,uBAGC,iBAAkB,CACnB,kBAGC,UAAW,CACX,WAAY,CACZ,yBAA0B,CAC3B,QAGC,WAAY,CACZ,wBAAyB,CAC1B,QAEC,WAAY,CACZ,wBAAyB,CAC1B,QAEC,WAAY,CACZ,wBAAyB,CAC1B,QCxcC,WAAY,CAEZ,aAAc,CACd,YAAa,CACb,qBAAsB,CACtB,QAAS,CACV,QAGC,wBAAyB,CACzB,aAAc,CACd,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACxB,gBAGC,YAAa,CACd,kBAGC,YAAa,CACb,WAAY,CACb,kBAGC,YAAa,CACd,YAIC,YAAa,CACd,gBAGC,YAAa,CACb,eAAgB,CACjB,cAGC,YAAa,CACb,gBAAiB,CAClB,MAGC,YAAa,CACd,WC/CC,eAAgB,CAGhB,gBAAiB,CACjB,aAAc,CACf,MAGC,YAAa,CACb,sBAAkB,CAAlB,iBAAkB,CAClB,cAAe,CAEhB,cAQC,oCAAqC,CACtC,cAGC,oCAAqC,CACtC,cAGC,oCAAqC,CACtC,cAGC,oCAAqC,CACtC,gBAGC,kBAAmB,CACpB,QAOC,eAAgB,CAChB,qBAAsB,CACtB,SAAU,CACV,cAAe,CACf,wBAAyB,CACzB,QAAS,CACT,YAAa,CACd,cAGC,+BAAgC,CACjC,sDASC,eAAgB,CAChB,UAAW,CAGX,qBAAsB,CACvB,iBAGC,gBAAiB,CACjB,gBAAiB,CACjB,oBAAqB,CACtB,mBAGC,gBAAiB,CACjB,eAAgB,CAChB,oBAAqB,CACtB,kBAGC,cAAe,CACf,eAAgB,CAChB,oBAAqB,CACtB,YAGC,aAAc,CACd,gBAAiB,CACjB,eAAgB,CAChB,aAAc,CACd,wBAAyB,CACzB,oBAAqB,CACrB,qBAAsB,CACvB,MAGC,eAAgB,CAChB,YAAa,CACb,qBAAsB,CACtB,UAAW,CACZ,WAGC,gBAAiB,CACjB,YAAa,CACb,kBAAmB,CACnB,UAAW,CACZ,WAGC,UAAW,CACX,WAAY,CACZ,aAAc,CACf,QAGC,YAAa,CAGb,4CAAgD,CACjD,iBAIC,8BAA+B,CAChC,kBAGC,+BAAgC,CACjC,aAGC,iBAAkB,CACnB,OAGC,eAAgB,CACjB,iBAOC,gBAAiB,CAClB,cAGC,kBAAmB,CAEnB,SAAU,CACX,uBAGC,gBAAiB,CACjB,wBAAyB,CACzB,cAAe,CAChB,wBAGC,wBAAyB,CACzB,cAAe,CACf,iBAAkB,CAClB,eAAgB,CACjB,+BAGC,oBAAqB,CACrB,iBAAkB,CAClB,MAAO,CACP,UAAW,CAEX,wBAAyB,CACzB,gBAAiB,CACjB,eAAgB,CAChB,UAAW,CACX,wBAAyB,CACzB,mBAAoB,CACpB,uBAAwB,CACzB,aAGC,iBAAkB,CAClB,oBAAqB,CACtB,WAGC,aAAc,CACd,eAAgB,CAChB,cAAe,CACf,wBAAyB,CACzB,mBAAoB,CACpB,oBAAqB,CACtB,YAGC,gBAAiB,CACjB,eAAgB,CAChB,UAAW,CACX,oBAAqB,CACtB,iBAGC,cAAe,CACf,eAAgB,CAChB,mBAAoB,CACrB,WAGC,gBAAiB,CACjB,eAAgB,CAChB,aAAc,CACf,cAGC,iBAAkB,CAClB,iBAAkB,CACnB,cAGC,gBAAiB,CACjB,eAAgB,CAChB,iBAAkB,CACnB,cAGC,aAAc,CACd,aAAc,CACd,YAAa,CACb,wBAAyB,CACzB,oBAAqB,CACrB,cAAe,CACf,iBAAkB,CACnB,eAGC,gBAAiB,CACjB,UAAW,CACX,eAAgB,CAChB,oBAAqB,CACtB,cAGC,gBAAiB,CACjB,eAAgB,CACjB,gBCzPC,aAAc,CACd,qBAAsB,CACvB,YAEC,qBAAsB,CACtB,UAAW,CACZ,SAEC,aAAc,CACf,SAEC,aAAc,CACd,gBAAiB,CAClB,SAEC,aAAc,CACf,SAEC,aAAc,CACf,SAEC,aAAc,CACf,SAEC,UAAW,CACZ,SAEC,UAAW,CACZ,SAEC,aAAc,CACd,gBAAiB,CAClB,SAEC,aAAc,CACd,gBAAiB,CAClB,SAEC,aAAc,CACf,SAEC,aAAc,CACf,YAIC,YAAa,CACb,eAAgB,CAChB,aAAc,CACf,gDASC,oBAAqB,CACtB,aAUC,gBACE,qBAAsB,CACvB,mBAGC,UAAW,CACZ,mBAGC,UAAW,CACX,gBAAiB,CAClB,mBAGC,UAAW,CACX,iBAAkB,CACnB,mBAGC,UAAW,CACX,gBAAiB,CAClB,mBAGC,UAAW,CACZ,mBAGC,UAAW,CACZ,mBAGC,UAAW,CACZ,mBAGC,UAAW,CACX,gBAAiB,CAClB,mBAGC,UAAW,CACZ,mBAGC,UAAW,CACZ","file":"style.css","sourcesContent":[".nav-tabs,\n.nav-tabs-tools,\n.nav-tabs-filter,\n.nav-tabs-api,\n.nav-tabs-apiauth {\n  float: left;\n  width: 100%;\n  margin: 0;\n  list-style-type: none;\n  border-bottom: 1px solid transparent;\n\n  > li {\n    float: left;\n    margin-bottom: -1px;\n\n    > a {\n      margin-right: 2px;\n      line-height: 1.5;\n      padding: 10px;\n      border: 1px solid transparent;\n      border-radius: 4px 4px 0 0;\n      float: left;\n      text-decoration: none;\n\n      &:hover {\n        border-color: #eee #eee #ddd;\n      }\n    }\n\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: #555;\n        cursor: default;\n        background-color: #fff;\n        border-color: transparent;\n      }\n    }\n  }\n}\n\n.tab-content > .tab-pane,\n.tab-content-tools > .tab-pane-tools {\n  float: left;\n  width: 98%;\n  display: none;\n\n  &.active {\n    display: block;\n    padding: 10px;\n    background-color: #fff;\n    box-shadow: 0 5px 4px -2px rgba(0, 0, 0, 0.15);\n  }\n}\n\n#top-btn {\n  display: none;\n  position: fixed;\n  bottom: 20px;\n  right: 30px;\n  z-index: 99;\n  font-size: 18px;\n  border: none;\n  outline: none;\n  background-color: purple;\n  color: white;\n  cursor: pointer;\n  padding: 15px;\n  border-radius: 4px;\n}\n\n#top-btn:hover {\n  background-color: #555;\n}\n","/**************************/\n/* Tags */\n/**************************/\n\n.tag {\n  display: inline-block;\n  text-decoration: none;\n  padding: 0.4rem 0.8rem; /* 0.4 0.8*/\n  font-size: 0.9rem; /* 1.2 */\n  color: none;\n  border-radius: 100px;\n  font-weight: 300;\n}\n\n.tag.small {\n  font-size: 0.8rem;\n  border-radius: 3px;\n  font-weight: 300;\n}\n\n.tag.medium {\n  font-size: 0.9rem;\n  border-radius: 15px;\n  font-weight: 300;\n}\n\n.tag.large {\n  font-size: 1.4rem;\n  border-radius: 15px;\n  font-weight: 400;\n}\n\n.tag.step {\n  font-size: 1.2rem;\n  border-radius: 50px;\n  font-weight: 500;\n}\n\n.tag.uppercase {\n  text-transform: uppercase;\n}\n\n/* Basic */\n.tag--woo {\n  color: #eee;\n  background-color: rgb(108, 59, 164);\n}\n\n.tag--woorev {\n  color: rgb(108, 59, 164);\n  background-color: #eee;\n}\n\n.tag--wooadv {\n  color: #eee;\n  background-color: rgb(218, 179, 254);\n}\n\n.tag--auth {\n  color: #333;\n  background-color: rgb(246, 169, 14);\n}\n\n.tag--attr {\n  color: #333;\n  background-color: rgb(206, 206, 206);\n}\n\n.tag--large {\n  color: #333;\n  background-color: #eee;\n}\n\n/* Attributes */\n.tag--order {\n  color: #eee;\n  background-color: rgb(132, 95, 132);\n}\n\n.tag--billing {\n  color: #333;\n  background-color: rgb(206, 206, 206);\n}\n\n.tag--fields {\n  color: lightblue;\n  background-color: rgb(25, 25, 25);\n}\n\n/* Features */\n.tag--codefree {\n  // background-color: rgb(249, 222, 0);\n  color: #fff;\n  background-color: #11111a;\n}\n\n.tag--secure {\n  color: #fff;\n  background-color: rgb(10, 151, 218);\n}\n\n.tag--notice {\n  // background-color: #dd6413;\n  color: #fff;\n  background-color: #4a4af3;\n}\n\n.tag--new {\n  color: #11111a;\n  background-color: #f34a4a;\n}\n\n.tag--cap {\n  color: #f34a4a;\n  background-color: #11111a;\n}\n\n/* License */\n.tag--disable {\n  color: #fff;\n  background-color: rgb(231, 0, 0);\n}\n\n.tag--enable {\n  color: #fff;\n  background-color: #43aa8b;\n  // background-color: rgb(48, 154, 62);\n}\n\n/**************************/\n/* Dynamic Tags */\n/**************************/\n\n.tag.available:hover {\n  cursor: pointer;\n  opacity: 0.7;\n}\n\n.tag.selected {\n  cursor: pointer;\n  opacity: 0.7;\n}\n\n.tag.disabled {\n  color: white;\n  background-color: #d2d2d2;\n  /* text-decoration: line-through; */\n  pointer-events: none;\n}\n\n.tag.pro {\n  color: #333;\n  background-color: #fdf2e9;\n  cursor: not-allowed;\n}\n\n/* Step */\n.step-tag {\n  color: #eee;\n  background-color: #ccc;\n  cursor: pointer;\n  text-transform: uppercase;\n}\n\n.step-tag.current {\n  background-color: rgb(108, 59, 164);\n}\n\n.order-api-step > .step-pane {\n  display: none;\n  &.active {\n    display: block;\n  }\n}\n\n.notice-tag {\n  color: #eee;\n  background-color: #ccc;\n}\n\n/**************************/\n/* Buttons */\n/**************************/\n\n.btn,\n.btn:link,\n.btn:visited {\n  display: inline-block;\n  text-decoration: none;\n  font-size: 1rem; /* 2 */\n  font-weight: 400;\n  padding: 0.8rem 1.6rem; /* 1.6 3.2 */\n  border-radius: 9px; /* 9 */\n\n  /* default color*/\n  // background-color: #f34a4a;\n  color: #11111a;\n\n  /* Only necessary for .btn */\n  border: none;\n  cursor: pointer;\n  font-family: inherit;\n\n  /* Put transition on original \"state\" */\n  /* transition: background-color 0.3s; */\n  transition: all 0.3s;\n}\n\n.btn.medium {\n  font-size: 0.9rem;\n  font-weight: 400;\n  padding: 0.6rem 1rem;\n}\n\n.btn--full:link,\n.btn--full:visited {\n  // background-color: #e67e22;\n  // color: #fff;\n  background-color: #f34a4a;\n  color: #11111a;\n}\n\n.btn--full:hover,\n.btn--full:active {\n  // background-color: #cf711f;\n  background-color: #11111a;\n  color: #f34a4a;\n}\n\n.btn--full.small {\n  font-size: 0.9rem;\n  border-radius: 26px;\n  font-weight: 500;\n}\n\n.btn--outline:link,\n.btn--outline:visited {\n  // background-color: #fff;\n  background-color: #2f2f48;\n  // color: #555;\n}\n\n.btn--outline:hover,\n.btn--outline:active {\n  // background-color: #fdf2e9;\n  background-color: #11111a;\n  color: #fff;\n\n  // border: 3px solid #fff;\n  /* Trick to add border inside */\n  // box-shadow: inset 0 0 0 3px #fff;\n}\n\n/* Prev Next Save */\n.next-btn,\n.prev-btn,\n.save-btn,\n.back-btn,\n.save-settings {\n  text-align: right;\n  padding: 1px;\n}\n\n.btn-next,\n.btn-prev,\n.btn-save,\n.btn-back {\n  float: right;\n}\n","/* $on: #009eea; */\n$on: rgb(108, 59, 164);\n$bg: #d9cb9e;\n$off: #8c8c8c;\n\n@mixin center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n@mixin userSelect($value) {\n  -webkit-touch-callout: $value;\n  -webkit-user-select: $value;\n  -khtml-user-select: $value;\n  -moz-user-select: $value;\n  -ms-user-select: $value;\n  user-select: $value;\n}\n\n@mixin ui-toggle($height, $on, $off) {\n  margin: 0;\n  padding: 0;\n\n  input[type=\"checkbox\"] {\n    display: none;\n\n    &:checked + label {\n      border-color: $on;\n      background: $on;\n      box-shadow: inset 0 0 0 #{$height / 2} $on;\n\n      > div {\n        margin-left: $height;\n      }\n    }\n  }\n\n  label {\n    transition: all 200ms ease;\n    display: inline-block;\n    position: relative;\n\n    @include userSelect(none);\n\n    background: $off;\n    box-shadow: inset 0 0 0 0 $on;\n    border: 2px solid $off;\n    border-radius: $height + 2;\n    width: $height * 2;\n    height: $height;\n\n    div {\n      transition: all 200ms ease;\n      background: #ffffff;\n      width: $height;\n      height: $height;\n      border-radius: $height / 2;\n    }\n\n    &:hover,\n    & > div:hover {\n      cursor: pointer;\n    }\n  }\n}\n\ndiv.ui-toggle {\n  @include ui-toggle(16px, $on, $off);\n\n  &.mb-10 {\n    margin-bottom: 10px;\n  }\n}\n",".api-table {\n  width: 100%;\n  border-spacing: 5px;\n  text-align: left;\n\n  &,\n  & th,\n  & td {\n    border: 1px solid #ccc;\n    border-collapse: collapse;\n    padding: 10px;\n  }\n\n  & th {\n    background-color: #f5f5f5;\n  }\n}\n\n.tag-table {\n  width: 100%;\n  border-spacing: 5px;\n  text-align: left;\n\n  &,\n  & th,\n  & td {\n    border: 0.8px solid #ccc;\n    border-collapse: collapse;\n    padding: 5px;\n  }\n\n  & th {\n    background-color: none;\n  }\n}\n\n.text-center {\n  text-align: center;\n}\n",".inline-block {\n  display: inline-block;\n}\n\n.text-left {\n  text-align: left;\n}\n\n.text-right {\n  text-align: right;\n}\n\n.w-50 {\n  width: 49%;\n}\n\n.inline {\n  display: inline-block;\n}\n\n.meta-label {\n  display: inline-block;\n  font-weight: bold;\n  margin-bottom: 5px;\n}\n\n.meta-container {\n  display: block;\n  margin-top: 20px;\n}\n","/**************************/\n/* Feature CSS */\n/**************************/\n\n.section-features {\n  padding: 9.6rem 0;\n}\n\n.feature {\n  box-shadow: 0 2.4rem 4.8rem rgba(0, 0, 0, 0.075);\n  border-radius: 11px;\n  overflow: hidden;\n  transition: all 0.4s;\n}\n\n/* card action */\n.feature:hover {\n  transform: translateY(-1.2rem);\n  box-shadow: 0 3.2rem 6.4rem rgba(0, 0, 0, 0.06);\n}\n\n/* content backgrpund */\n.feature-content {\n  font-size: 0.9rem; /* 1.8 */\n  line-height: 1.8;\n  align-items: center;\n  padding: 1.6rem 2.4rem 2.4rem 2.4rem;\n  /* 3.2rem 4.8rem 4.8rem 4.8rem;*/\n}\n\n.feature-cards {\n  padding: 1.6rem 2.4rem 2.4rem 2.4rem;\n}\n\n.feature-tags {\n  margin-bottom: 1.2rem; /* 1.2rem */\n  display: flex;\n  gap: 0.4rem;\n}\n\n.feature-dashboard-tags {\n  margin-top: 2.2rem; /* 1.2rem */\n  margin-bottom: 2.2rem; /* 1.2rem */\n  display: flex;\n  gap: 0.4rem;\n}\n\n.feature-hidden {\n  margin-bottom: 1.2rem;\n  gap: 0.4rem;\n}\n\n.feature-name {\n  font-size: 1.2rem; /* 2.4 */\n  color: #333;\n  font-weight: 600;\n  margin-bottom: 1.6rem; /* 3.2 */\n}\n\n.feature-info {\n  font-size: 0.9rem; /*1.8 */\n  line-height: 1.6; /*1.8 */\n}\n\n.feature-attributes {\n  list-style: none;\n  display: flex;\n  flex-direction: column;\n  gap: 0.2rem; /* 2 */\n}\n\n.feature-attribute {\n  font-size: 1rem; /* 1.8 */\n  display: flex;\n  align-items: center;\n  gap: 0.8rem; /* 1.6 */\n}\n\n.feature-icon {\n  height: 2.4rem;\n  width: 2.4rem;\n  color: #e67e22;\n}\n\n.feature-img {\n  width: 100%;\n}\n\n.call-to-action {\n  text-align: center;\n  margin-top: 2.4rem; /* 4.8 */\n}\n\n.all-features {\n  text-align: center;\n  font-size: 1rem; /* 1.8 */\n}\n\n/* pagination  */\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #555;\n  background-color: #fae5d3;\n  border: 2px solid rgb(255, 255, 255);\n  border-radius: 11px;\n}\n\n/**************************/\n/* Card CSS no movement */\n/**************************/\n\n.card-content {\n  box-shadow: 0 2.4rem 4.8rem rgba(0, 0, 0, 0.075);\n  border-radius: 11px;\n  overflow: hidden;\n  transition: all 0.4s;\n}\n\n/**************************/\n/* Admin Notice */\n/**************************/\n\n.notice-action-button {\n  float: right;\n  margin-top: -66px;\n}\n\n/**************************/\n/* Order API */\n/**************************/\n\n/* action span */\n.action-tags {\n  margin-bottom: 1.2rem;\n  display: flex;\n  flex-wrap: wrap;\n  gap: 0.8rem 0.2rem;\n}\n\n.tag-item {\n  flex: 0 0 calc(50% - 0.1em);\n  display: flex;\n  // align-items: center;\n  // gap: 0.4rem;\n  // box-sizing: border-box;\n  flex-direction: column;\n  box-sizing: border-box;\n}\n\n.tag-wrapper {\n  display: flex;\n  align-items: center;\n  gap: 0.4rem;\n  margin-bottom: 0.3rem;\n}\n\n.tag-wrapper .tag {\n  flex-shrink: 0;\n  white-space: nowrap;\n}\n\n.tag-wrapper .image-container {\n  flex-shrink: 0;\n}\n\n.tag-wrapper .image-container img {\n  display: block;\n}\n\n.tag-desc {\n  margin: 0;\n  font-size: 0.85rem;\n  color: #666;\n  line-height: 1.4;\n  word-break: break-word;\n}\n\n/**************************/\n/* API input form  */\n/**************************/\n\n.api-input-form {\n  display: grid;\n  /* grid-template-columns: 0.5fr 1fr; */\n  border-radius: 11px;\n  overflow: hidden;\n  text-align: left;\n  /* padding: 1.8rem 0rem 1.8rem 1.8rem; */\n  padding: 0px 0px 18px 0px;\n  /* font-size: 1.8rem; */\n  font-size: 18px;\n  line-height: 1.8;\n}\n\n.api-input-form label {\n  /* display: block; */\n  /* font-size: 1.6rem; */\n  font-size: 16px;\n  font-weight: 500;\n  /*margin-bottom: 1.2rem; */\n  margin-bottom: 12px;\n  margin-top: 12px;\n}\n\n.api-input-form input,\n.api-input-form textarea,\n.api-input-form select {\n  width: 60%;\n  /* padding: 0.7rem;\n  font-size: 1.5rem; */\n  padding: 7px;\n  font-size: 15px;\n  font-family: inherit;\n  color: inherit;\n  border-radius: 9px;\n  background-color: #fdf2e9;\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.api-input-form input::placeholder,\n.api-input-form textarea::placeholder {\n  color: #aaa;\n}\n\n.api-input-form *:focus {\n  outline: none;\n  /* box-shadow: 0 0 0 0.8rem rgba(253, 242, 233, 0.5); */\n  box-shadow: 0 0 0 16px rgba(253, 242, 233, 0.5);\n}\n\n/**************************/\n/* Advance mode */\n/**************************/\n\n.adv-box-container {\n  display: flex;\n  flex-direction: row;\n  padding: 0px 0px;\n}\n\n.adv-box {\n  width: 350px;\n}\n\n.adv-pre {\n  width: 650px;\n}\n\n.adv-box-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin: 0 10px 10px;\n}\n\n.adv-box-title {\n  font-weight: bold;\n  font-size: 0.9rem; /* 1.8 */\n  margin: 0;\n}\n\n.adv-box-table-container {\n  height: 250px;\n  margin-bottom: 15px;\n  overflow: auto;\n  border: 1px solid #bbb;\n  border-radius: 5px;\n}\n\n/* Idle */\n.adv-minus-btn {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 0.4rem;\n}\n\n/* Delete button */\n.adv-box-btn {\n  border-radius: 5px;\n  transition: background-color 0.15s ease-in-out;\n  user-select: none;\n  border: none;\n  cursor: pointer;\n  font-size: 14px;\n  height: 35px;\n}\n\n.adv-box-btn.circle {\n  border-radius: 50px;\n}\n\n/* Button icon */\n.adv-box-btn-icon {\n  height: 3px;\n  width: 12px;\n  border-radius: 5px;\n  background-color: white;\n}\n\n.adv-box-btn-delete {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background-color: #e53c4a;\n  height: 22px;\n  width: 22px;\n}\n\n.adv-box-btn-delete:hover {\n  background-color: #db3240;\n}\n\n.adv-box-btn-delete:active {\n  background-color: #cc2331;\n}\n\n.adv-box td .adv-box-btn-delete {\n  margin: auto;\n}\n\n.adv-box-footer {\n  display: flex;\n  flex-direction: column;\n}\n\n.adv-box-total {\n  flex: 1;\n  font-size: 14px;\n  font-weight: bold;\n  margin: 0 10px 15px;\n  padding: 0;\n  text-align: right;\n}\n\n/**************************/\n/* Tooltips*/\n/**************************/\n\n// .image-container {\n//   position: relative;\n//   display: inline-block;\n// }\n\n// .image-info {\n//   display: none;\n//   /* position: absolute; */\n//   position: absolute;\n//   background-color: #fff;\n//   padding: 1px;\n//   border: 1px solid #ccc;\n//   border-radius: 5px;\n// }\n\n// .image-container:hover .image-info {\n//   display: block;\n// }\n\n.api-label {\n  display: flex;\n  align-items: center; // 文字與圖片垂直置中\n  gap: 6px; // 文字與圖片之間的間距\n  font-weight: 500;\n  cursor: default;\n}\n\n/* 圖片 + info 的容器 */\n.image-wrapper {\n  position: relative;\n  display: inline-flex;\n  align-items: center;\n}\n\n.image-info {\n  display: none;\n  position: absolute;\n  left: 100%; // 貼在圖片右側\n  top: 50%;\n  transform: translateY(-50%);\n  margin-left: 10px; // 留出箭頭空間\n  background: #fff;\n  padding: 8px 12px;\n  border: 1px solid #ccc;\n  border-radius: 5px;\n  font-size: 13px;\n  white-space: nowrap;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);\n  z-index: 10;\n\n  /* 小箭頭(左側指向圖片) */\n  &::before {\n    content: \"\";\n    position: absolute;\n    top: 50%;\n    left: -16px; // 箭頭寬度\n    transform: translateY(-50%);\n    border: 8px solid transparent;\n    border-right-color: #ccc; // 外框箭頭(與邊框同色)\n  }\n\n  /* 內層白色箭頭(蓋掉邊框,讓看起來乾淨) */\n  &::after {\n    content: \"\";\n    position: absolute;\n    top: 50%;\n    left: -14px; // 比外箭頭內縮 1px\n    transform: translateY(-50%);\n    border: 7px solid transparent;\n    border-right-color: #fff; // 填滿背景色\n    z-index: 1;\n  }\n}\n\n/* Hover 時顯示 */\n.image-wrapper:hover .image-info {\n  display: block;\n}\n\n/**************************/\n/* Idle */\n/**************************/\n\n.aa-legend {\n  list-style-type: none;\n  margin: 17rem 0rem 0rem 5rem;\n}\n\n.aa-legend-item {\n  display: flex;\n  align-items: center;\n  margin-bottom: 10px;\n  padding: 0;\n}\n\n.aa-legend-description {\n  margin: 0 0 0 10px;\n}\n\n.aa-legend-bullet {\n  width: 22px;\n  height: 22px;\n  border-radius: 5px 5px 0 0;\n}\n\n.color1 {\n  color: white;\n  background-color: #277da1;\n}\n.color2 {\n  color: white;\n  background-color: #43aa8b;\n}\n.color3 {\n  color: white;\n  background-color: #f8961e;\n}\n","/* Scroll control */\n.scroll {\n  /* background-color: #e9ecef;*/\n  padding: 0px;\n  /* How elements that don't fit into container appear */\n  overflow: auto;\n  display: flex;\n  flex-direction: column;\n  gap: 40px;\n}\n/* Api Tools Section*/\n.pretty {\n  background-color: #adb5bd;\n  flex-shrink: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.pretty.sendapi {\n  height: 555px;\n}\n\n.pretty.filterapi {\n  height: 222px;\n  width: 777px;\n}\n\n.pretty.manageapi {\n  height: 444px;\n}\n\n/* Order Api Section*/\n.pretty.api {\n  height: 333px;\n}\n\n.pretty.advance {\n  height: 250px;\n  color: lightblue;\n}\n\n.pretty.props {\n  height: 333px;\n  align-items: left;\n}\n/* Hide pretty */\n.json {\n  display: none;\n}\n",".container {\n  /* 1140px */\n  max-width: 80rem;\n  /* max-width: 80rem;\n  /*120rem*/\n  padding: 0 3.2rem;\n  margin: 0 auto;\n}\n\n.grid {\n  display: grid;\n  column-gap: 2.2rem; /* 6.4 */\n  row-gap: 9.6rem;\n  /* margin-bottom: 9.6rem; */\n}\n\n/*\n.grid:not(:last-child) {\n  margin-bottom: 9.6rem;\n}\n*/\n.grid--2-cols {\n  grid-template-columns: repeat(2, 1fr);\n}\n\n.grid--3-cols {\n  grid-template-columns: repeat(3, 1fr);\n}\n\n.grid--4-cols {\n  grid-template-columns: repeat(4, 1fr);\n}\n\n.grid--5-cols {\n  grid-template-columns: repeat(5, 1fr);\n}\n\n.grid--center-v {\n  align-items: center;\n}\n\n/**************************/\n/* HEADER */\n/**************************/\n\n.header {\n  background: #fff;\n  box-sizing: border-box;\n  padding: 0;\n  position: fixed;\n  width: calc(100% - 160px);\n  top: 32px;\n  z-index: 1001;\n}\n\n.header-title {\n  padding: 1.2rem 0rem 1.2rem 0rem;\n}\n\n/**************************/\n/* General */\n/**************************/\n\n.heading-primary,\n.heading-secondary,\n.heading-tertiary {\n  font-weight: 700;\n  color: #333;\n  /* color: #45260a; */\n  /* color: #343a40; */\n  letter-spacing: -0.5px;\n}\n\n.heading-primary {\n  font-size: 5.2rem;\n  line-height: 1.05;\n  margin-bottom: 3.2rem;\n}\n\n.heading-secondary {\n  font-size: 4.4rem;\n  line-height: 1.2;\n  margin-bottom: 9.6rem;\n}\n\n.heading-tertiary {\n  font-size: 3rem;\n  line-height: 1.2;\n  margin-bottom: 3.2rem;\n}\n\n.subheading {\n  display: block;\n  font-size: 1.6rem;\n  font-weight: 500;\n  color: #cf711f;\n  text-transform: uppercase;\n  margin-bottom: 1.6rem;\n  letter-spacing: 0.75px;\n}\n\n.list {\n  list-style: none;\n  display: flex;\n  flex-direction: column;\n  gap: 1.6rem;\n}\n\n.list-item {\n  font-size: 1.8rem;\n  display: flex;\n  align-items: center;\n  gap: 1.6rem;\n}\n\n.list-icon {\n  width: 3rem;\n  height: 3rem;\n  color: #e67e22;\n}\n\n*:focus {\n  outline: none;\n  /* outline: 4px dotted #e67e22; */\n  /* outline-offset: 8px; */\n  box-shadow: 0 0 0 0.8rem rgba(230, 125, 34, 0.5);\n}\n\n/* HELPER/SETTINGS CLASSES */\n.margin-right-sm {\n  margin-right: 1.6rem !important;\n}\n\n.margin-bottom-md {\n  margin-bottom: 4.8rem !important;\n}\n\n.center-text {\n  text-align: center;\n}\n\nstrong {\n  font-weight: 500;\n}\n\n/**************************/\n/* SECTION */\n/**************************/\n\n.section-pricing {\n  padding: 9.6rem 0;\n}\n\n.pricing-plan {\n  border-radius: 11px;\n\n  width: 75%;\n}\n\n.pricing-plan--starter {\n  justify-self: end;\n  border: 2px solid #fdf2e9;\n  padding: 4.6rem;\n}\n\n.pricing-plan--complete {\n  background-color: #fdf2e9;\n  padding: 4.8rem;\n  position: relative;\n  overflow: hidden;\n}\n\n.pricing-plan--complete::after {\n  content: \"Best value\";\n  position: absolute;\n  top: 6%;\n  right: -18%;\n\n  text-transform: uppercase;\n  font-size: 1.4rem;\n  font-weight: 700;\n  color: #333;\n  background-color: #ffd43b;\n  padding: 0.8rem 8rem;\n  transform: rotate(45deg);\n}\n\n.plan-header {\n  text-align: center;\n  margin-bottom: 4.8rem;\n}\n\n.plan-name {\n  color: #cf711f;\n  font-weight: 600;\n  font-size: 2rem;\n  text-transform: uppercase;\n  letter-spacing: 0.75;\n  margin-bottom: 3.2rem;\n}\n\n.plan-price {\n  font-size: 6.2rem;\n  font-weight: 600;\n  color: #333;\n  margin-bottom: 1.6rem;\n}\n\n.plan-price span {\n  font-size: 3rem;\n  font-weight: 500;\n  margin-right: 0.8rem;\n}\n\n.plan-text {\n  font-size: 1.6rem;\n  line-height: 1.6;\n  color: #6f6f6f;\n}\n\n.plan-sing-up {\n  text-align: center;\n  margin-top: 4.8rem;\n}\n\n.plan-details {\n  font-size: 1.6rem;\n  line-height: 1.6;\n  text-align: center;\n}\n\n.feature-icon {\n  color: #e67e22;\n  height: 3.2rem;\n  width: 3.2rem;\n  background-color: #fdf2e9;\n  margin-bottom: 3.2rem;\n  padding: 1.6rem;\n  border-radius: 50%;\n}\n\n.feature-title {\n  font-size: 2.4rem;\n  color: #333;\n  font-weight: 700;\n  margin-bottom: 1.6rem;\n}\n\n.feature-text {\n  font-size: 1.8rem;\n  line-height: 1.8;\n}\n","/* desert scheme ported from vim to google prettify */\r\npre.prettyprint {\r\n  display: block;\r\n  background-color: #333;\r\n}\r\npre .nocode {\r\n  background-color: none;\r\n  color: #000;\r\n}\r\npre .str {\r\n  color: #ffa0a0;\r\n} /* string  - pink */\r\npre .kwd {\r\n  color: #f0e68c;\r\n  font-weight: bold;\r\n}\r\npre .com {\r\n  color: #87ceeb;\r\n} /* comment - skyblue */\r\npre .typ {\r\n  color: #98fb98;\r\n} /* type    - lightgreen */\r\npre .lit {\r\n  color: #cd5c5c;\r\n} /* literal - darkred */\r\npre .pun {\r\n  color: #fff;\r\n} /* punctuation */\r\npre .pln {\r\n  color: #fff;\r\n} /* plaintext */\r\npre .tag {\r\n  color: #f0e68c;\r\n  font-weight: bold;\r\n} /* html/xml tag    - lightyellow */\r\npre .atn {\r\n  color: #bdb76b;\r\n  font-weight: bold;\r\n} /* attribute name  - khaki */\r\npre .atv {\r\n  color: #ffa0a0;\r\n} /* attribute value - pink */\r\npre .dec {\r\n  color: #98fb98;\r\n} /* decimal         - lightgreen */\r\n\r\n/* Specify class=linenums on a pre to get line numbering */\r\nol.linenums {\r\n  margin-top: 0;\r\n  margin-bottom: 0;\r\n  color: #aeaeae;\r\n} /* IE indents via margin-left */\r\nli.L0,\r\nli.L1,\r\nli.L2,\r\nli.L3,\r\nli.L5,\r\nli.L6,\r\nli.L7,\r\nli.L8 {\r\n  list-style-type: none;\r\n}\r\n/* Alternate shading for lines */\r\nli.L1,\r\nli.L3,\r\nli.L5,\r\nli.L7,\r\nli.L9 {\r\n}\r\n\r\n@media print {\r\n  pre.prettyprint {\r\n    background-color: none;\r\n  }\r\n  pre .str,\r\n  code .str {\r\n    color: #060;\r\n  }\r\n  pre .kwd,\r\n  code .kwd {\r\n    color: #006;\r\n    font-weight: bold;\r\n  }\r\n  pre .com,\r\n  code .com {\r\n    color: #600;\r\n    font-style: italic;\r\n  }\r\n  pre .typ,\r\n  code .typ {\r\n    color: #404;\r\n    font-weight: bold;\r\n  }\r\n  pre .lit,\r\n  code .lit {\r\n    color: #044;\r\n  }\r\n  pre .pun,\r\n  code .pun {\r\n    color: #440;\r\n  }\r\n  pre .pln,\r\n  code .pln {\r\n    color: #000;\r\n  }\r\n  pre .tag,\r\n  code .tag {\r\n    color: #006;\r\n    font-weight: bold;\r\n  }\r\n  pre .atn,\r\n  code .atn {\r\n    color: #404;\r\n  }\r\n  pre .atv,\r\n  code .atv {\r\n    color: #060;\r\n  }\r\n}\r\n"]}
  • anyapi/trunk/assets/js/admin.js

    r3347672 r3394506  
    44
    55jQuery(document).ready(function ($) {
    6   $(document).on("click", ".number-of-keys", function () {
     6  $(document).on("click", ".notice-action", function () {
    77    jQuery.post(ajaxurl, {
    8       action: "close_numberofkey_notice",
     8      action: "close_notice",
    99    });
    1010  });
  • anyapi/trunk/assets/js/admin.min.js

    r3347672 r3394506  
    1 !(function o(t, u, i) {
    2   function c(e, r) {
    3     if (!u[e]) {
    4       if (!t[e]) {
    5         var n = "function" == typeof require && require;
    6         if (!r && n) return n(e, !0);
    7         if (f) return f(e, !0);
    8         throw (
    9           (((r = new Error("Cannot find module '" + e + "'")).code =
    10             "MODULE_NOT_FOUND"),
    11           r)
    12         );
    13       }
    14       (n = u[e] = { exports: {} }),
    15         t[e][0].call(
    16           n.exports,
    17           function (r) {
    18             return c(t[e][1][r] || r);
    19           },
    20           n,
    21           n.exports,
    22           o,
    23           t,
    24           u,
    25           i
    26         );
    27     }
    28     return u[e].exports;
    29   }
    30   for (
    31     var f = "function" == typeof require && require, r = 0;
    32     r < i.length;
    33     r++
    34   )
    35     c(i[r]);
    36   return c;
    37 })(
    38   {
    39     1: [
    40       function (r, e, n) {
    41         "use strict";
    42         jQuery(document).ready(function (r) {
    43           r(document).on("click", ".number-of-keys", function () {
    44             jQuery.post(ajaxurl, { action: "close_numberofkey_notice" });
    45           });
    46         });
    47       },
    48       {},
    49     ],
    50   },
    51   {},
    52   [1]
    53 );
     1!function t(o,u,i){function c(n,r){if(!u[n]){if(!o[n]){var e="function"==typeof require&&require;if(!r&&e)return e(n,!0);if(f)return f(n,!0);throw(r=new Error("Cannot find module '"+n+"'")).code="MODULE_NOT_FOUND",r}e=u[n]={exports:{}},o[n][0].call(e.exports,function(r){return c(o[n][1][r]||r)},e,e.exports,t,o,u,i)}return u[n].exports}for(var f="function"==typeof require&&require,r=0;r<i.length;r++)c(i[r]);return c}({1:[function(r,n,e){"use strict";jQuery(document).ready(function(r){r(document).on("click",".notice-action",function(){jQuery.post(ajaxurl,{action:"close_notice"})})})},{}]},{},[1]);
  • anyapi/trunk/assets/js/layout-tab.js

    r3323765 r3394506  
    126126    });
    127127  }
     128  let apiLogActivate = document.querySelector("button.apilogs-activate");
     129  if (apiLogActivate) {
     130    apiLogActivate.addEventListener("click", function () {
     131      const checkbox = document.getElementById("apiLogsCheckbox");
     132      if (this.textContent.trim() === "Activate") {
     133        checkbox.checked = true;
     134      } else {
     135        checkbox.checked = false;
     136      }
     137    });
     138  }
    128139});
    129140
     
    210221  }
    211222});
     223
    212224document.addEventListener("DOMContentLoaded", function () {
    213225  var methodSelect = document.getElementById("method");
    214226  var textareaLabel = document.getElementById("bodyLabel");
    215   var textareaRow = document.getElementById("body");
     227  var textareaRow = document.getElementById("rest-api-body-text");
     228
    216229  if (methodSelect) {
    217230    methodSelect.addEventListener("change", function () {
  • anyapi/trunk/assets/js/layout-tab.min.js

    r3323765 r3394506  
    4040      function (e, t, $) {
    4141        var _, n, r, a, o, i, s, l, c, u, d, f, p, h, m, N, L, g, A, v, y, b;
    42         function S(e) {
     42        function x(e) {
    4343          for (var c = 0, u = !1, t = !1, n = 0, r = e.length; n < r; ++n)
    4444            if ((i = e[n]).ignoreCase) t = !0;
     
    222222            a.push.apply(a, r.decorations));
    223223        }
    224         function x(e, x) {
     224        function S(e, S) {
    225225          for (
    226             var w, C = {}, t = e.concat(x), n = [], r = {}, a = 0, o = t.length;
     226            var w, C = {}, t = e.concat(S), n = [], r = {}, a = 0, o = t.length;
    227227            a < o;
    228228            ++a
     
    235235            r.hasOwnProperty(u) || (n.push(c), (r[u] = null));
    236236          }
    237           n.push(/[\0-\uffff]/), (w = S(n));
     237          n.push(/[\0-\uffff]/), (w = x(n));
    238238          function E(e) {
    239239            for (
     
    260260                else {
    261261                  for (var m = 0; m < k; ++m)
    262                     if (((h = x[m]), (p = d.match(h[1])))) {
     262                    if (((h = S[m]), (p = d.match(h[1])))) {
    263263                      f = h[0];
    264264                      break;
     
    275275                y,
    276276                b,
    277                 S = o;
     277                x = o;
    278278              (o += d.length),
    279279                u
     
    282282                    p[2] && (v = (y = d.length - p[2].length) - g.length),
    283283                    (b = f.substring(5)),
    284                     q(r, n + S, d.substring(0, v), E, a),
    285                     q(r, n + S + v, g, T(b, g), a),
    286                     q(r, n + S + y, d.substring(y), E, a))
    287                   : a.push(n + S, f);
     284                    q(r, n + x, d.substring(0, v), E, a),
     285                    q(r, n + x + v, g, T(b, g), a),
     286                    q(r, n + x + y, d.substring(y), E, a))
     287                  : a.push(n + x, f);
    288288            }
    289289            e.decorations = a;
    290290          }
    291           var k = x.length;
     291          var k = S.length;
    292292          return E;
    293293        }
     
    397397              [m, new RegExp(r), null]
    398398            ),
    399             x(t, n)
     399            S(t, n)
    400400          );
    401401        }
     
    508508              m = i.decorations,
    509509              g = 0;
    510             for (m[(S = m.length)] = u, r = n = 0; r < S; )
     510            for (m[(x = m.length)] = u, r = n = 0; r < x; )
    511511              m[r] !== m[r + 2]
    512512                ? ((m[n++] = m[r++]), (m[n++] = m[r++]))
    513513                : (r += 2);
    514             for (S = n, r = n = 0; r < S; ) {
     514            for (x = n, r = n = 0; r < x; ) {
    515515              for (
    516516                var v = m[r], y = m[r + 1], b = r + 2;
    517                 b + 2 <= S && m[b + 1] === y;
     517                b + 2 <= x && m[b + 1] === y;
    518518
    519519              )
     
    521521              (m[n++] = v), (m[n++] = y), (r = b);
    522522            }
    523             var S = (m.length = n),
     523            var x = (m.length = n),
    524524              i = i.sourceNode,
    525               x = "";
    526             i && ((x = i.style.display), (i.style.display = "none"));
     525              S = "";
     526            i && ((S = i.style.display), (i.style.display = "none"));
    527527            try {
    528528              for (; h < p; ) {
     
    551551              }
    552552            } finally {
    553               i && (i.style.display = x);
     553              i && (i.style.display = S);
    554554            }
    555555          } catch (e) {
     
    600600                }),
    601601              0),
    602             S = /\blang(?:uage)?-([\w.]+)(?!\S)/,
    603             x = /\bprettyprint\b/,
     602            x = /\blang(?:uage)?-([\w.]+)(?!\S)/,
     603            S = /\bprettyprint\b/,
    604604            w = /\bprettyprinted\b/,
    605605            C = /pre|xmp/i,
     
    631631              }
    632632              var s = n.className;
    633               if ((r !== N || x.test(s)) && !w.test(s)) {
     633              if ((r !== N || S.test(s)) && !w.test(s)) {
    634634                for (
    635635                  var l, c, u, d, f = !1, p = n.parentNode;
     
    638638                ) {
    639639                  var h = p.tagName;
    640                   if (k.test(h) && p.className && x.test(p.className)) {
     640                  if (k.test(h) && p.className && S.test(p.className)) {
    641641                    f = !0;
    642642                    break;
     
    648648                    (l = r.lang) ||
    649649                    ((l =
    650                       !(l = s.match(S)) &&
     650                      !(l = s.match(x)) &&
    651651                      (c = (function (e) {
    652652                        for (
     
    667667                      })(n)) &&
    668668                      E.test(c.tagName)
    669                         ? c.className.match(S)
     669                        ? c.className.match(x)
    670670                        : l) &&
    671671                      l[1])),
     
    760760          C(v, ["default-code"]),
    761761          C(
    762             x(
     762            S(
    763763              [],
    764764              [
     
    778778          ),
    779779          C(
    780             x(
     780            S(
    781781              [
    782782                [N, /^[\s]+/, null, " \t\r\n"],
     
    798798            ["in.tag"]
    799799          ),
    800           C(x([], [[g, /^[\s\S]+/]]), ["uq.val"]),
     800          C(S([], [[g, /^[\s\S]+/]]), ["uq.val"]),
    801801          C(
    802802            w({ keywords: a, hashComments: !0, cStyleComments: !0, types: u }),
     
    866866            ["coffee"]
    867867          ),
    868           C(x([], [[d, /^[\s\S]+/]]), ["regex"]),
     868          C(S([], [[d, /^[\s\S]+/]]), ["regex"]),
    869869          (b = _.PR =
    870870            {
    871               createSimpleLexer: x,
     871              createSimpleLexer: S,
    872872              registerLangHandler: C,
    873873              sourceDecorator: w,
     
    10441044            var e = document.getElementById("method"),
    10451045              t = document.getElementById("bodyLabel"),
    1046               n = document.getElementById("body");
     1046              n = document.getElementById("rest-api-body-text");
    10471047            e &&
    10481048              e.addEventListener("change", function () {
  • anyapi/trunk/assets/js/settings-api.js

    r3323765 r3394506  
    183183        expertMode.classList.add("disabled");
    184184        expertMode.classList.remove("available");
     185
    185186        advancePreview.classList.remove("json");
    186 
    187         cloneJson.innerHTML = advancePreview.outerHTML;
    188         selectedMode.value = basicMode.innerHTML;
    189         localStorage.setItem("mode", basicMode.innerHTML);
    190         localStorage.setItem("json", "Original JSON will be send");
     187        cloneMode.innerHTML = advanceMode.outerHTML;
     188        cloneJson.innerHTML = cloneJson.outerHTML;
     189        selectedMode.value = advanceMode.innerHTML;
     190        localStorage.setItem("mode", advanceMode.innerHTML);
     191        // localStorage.setItem("json", "Original JSON will be send");
    191192      } else {
    192193        advanceMode.classList.add("available");
     
    271272});
    272273
    273 // Setting Steps
     274/**
     275 * Setting Steps
     276 */
     277
    274278window.addEventListener("load", function () {
    275279  PR.prettyPrint();
     
    283287  let jsons = document.querySelectorAll("div.mode-pre");
    284288  let cloneAdvance = document.querySelector("div.adv-box-table-container");
     289  let selectedJson = document.querySelector(".final-json");
    285290
    286291  // Step One instruction span
     
    336341  let previewFilterTag = document.querySelector("span.preview-filter-tag");
    337342  let jsonPre = document.querySelector("div.json-pre");
    338   let filterTag = document.querySelector("span.filter-tag");
    339 
    340   if (basicTag) {
    341     basicTag.addEventListener("click", function (event) {
    342       event.preventDefault();
    343       filterTag.innerHTML = "Basic mode - original json data will be send";
    344     });
    345   }
    346 
    347   if (advanceTag) {
    348     advanceTag.addEventListener("click", function (event) {
    349       event.preventDefault();
    350       filterTag.innerHTML =
    351         "Advance mode - filter the json attribute which will be selected";
    352     });
    353   }
    354 
    355   if (expertTag) {
    356     expertTag.addEventListener("click", function (event) {
    357       event.preventDefault();
    358       filterTag.innerHTML =
    359         "Expert mode - Any custom fields will be filtered, Stay tuned for updates";
    360     });
     343  let cloneJson = document.querySelector("div.json-mode > pre");
     344
     345  // let filterTag = document.querySelector("span.filter-tag");
     346
     347  let productId = document.querySelector("span.fields-product-id");
     348  let productName = document.querySelector("span.fields-product-name");
     349  let productTotal = document.querySelector("span.fields-product-total");
     350  let filterOutput = document.getElementById("filter-output");
     351
     352  let lineItem = {
     353    name: undefined,
     354    product_id: undefined,
     355    total: undefined,
     356  };
     357
     358  if (productId) {
     359    productId.addEventListener("click", function (event) {
     360      event.preventDefault();
     361      // filterTag.innerHTML = "Basic mode - original json data will be send";
     362      // lineItem.product_id = "";
     363      toggleActive(productId);
     364      lineItem.product_id = lineItem.product_id === undefined ? "" : undefined;
     365      updateOutput();
     366    });
     367  }
     368
     369  if (productName) {
     370    productName.addEventListener("click", function (event) {
     371      event.preventDefault();
     372      // filterTag.innerHTML =
     373      // "Advance mode - filter the json fields which will be selected";
     374      // lineItem.name = "";
     375      toggleActive(productName);
     376      lineItem.name = lineItem.name === undefined ? "" : undefined;
     377      updateOutput();
     378    });
     379  }
     380
     381  if (productTotal) {
     382    productTotal.addEventListener("click", function (event) {
     383      event.preventDefault();
     384      // filterTag.innerHTML =
     385      // "Expert mode - Any custom fields will be filtered, Stay tuned for updates";
     386      // lineItem.total = "";
     387      toggleActive(productTotal);
     388      lineItem.total = lineItem.total === undefined ? "" : undefined;
     389      updateOutput();
     390    });
     391  }
     392
     393  function toggleActive(element) {
     394    element.classList.toggle("selected");
     395  }
     396
     397  function updateOutput() {
     398    const filteredLineItem = {};
     399    if (lineItem.name !== undefined) filteredLineItem.name = lineItem.name;
     400    if (lineItem.product_id !== undefined)
     401      filteredLineItem.product_id = lineItem.product_id;
     402    if (lineItem.total !== undefined) filteredLineItem.total = lineItem.total;
     403
     404    const jsonOutput = JSON.stringify(
     405      {
     406        line_items: [filteredLineItem],
     407      },
     408      null,
     409      2
     410    );
     411    filterOutput.innerHTML = jsonOutput;
     412    selectedJson.value = jsonOutput;
     413    cloneJson.innerHTML = jsonOutput;
     414    cloneAdvance.innerHTML = "<span>Hello.AnyAPI</span>";
     415    localStorage.setItem("json", selectedJson.value);
    361416  }
    362417
     
    367422        selectFilterTag.classList.remove("notice-tag");
    368423        previewFilterTag.classList.remove("notice-tag");
    369         filterTag.removeAttribute("hidden");
     424        // filterTag.removeAttribute("hidden");
    370425        jsonPre.removeAttribute("hidden");
    371426      } else {
    372427        selectFilterTag.classList.add("notice-tag");
    373428        previewFilterTag.classList.add("notice-tag");
    374         filterTag.setAttribute("hidden", "true");
     429        // filterTag.setAttribute("hidden", "true");
    375430        jsonPre.setAttribute("hidden", "true");
    376431      }
  • anyapi/trunk/assets/js/settings-api.min.js

    r3323765 r3394506  
    1 !function r(a,c,l){function i(t,e){if(!c[t]){if(!a[t]){var s="function"==typeof require&&require;if(!e&&s)return s(t,!0);if(n)return n(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}s=c[t]={exports:{}},a[t][0].call(s.exports,function(e){return i(a[t][1][e]||e)},s,s.exports,r,a,c,l)}return c[t].exports}for(var n="function"==typeof require&&require,e=0;e<l.length;e++)i(l[e]);return i}({1:[function(e,t,s){"use strict";document.addEventListener("DOMContentLoaded",function(){PR.prettyPrint();var c=document.querySelector("div.selected-key"),t=document.querySelector("div.trigger-action"),e=document.querySelector("div.api-mode"),s=document.querySelector("div.json-mode > pre"),l=document.querySelector(".final-id"),r=document.querySelector(".final-url"),a=document.querySelector(".final-body"),i=document.querySelector(".final-trigger"),n=document.querySelector(".final-mode"),o=document.querySelector(".final-json"),d=document.querySelector("span.api-id"),u=document.querySelector("span.api-url"),m=document.querySelector("span.api-body"),v=document.querySelector("span.api-trigger"),L=document.querySelector("span.api-mode"),y=document.querySelector("span.api-json"),p=document.querySelector("input#api-url"),S=document.querySelector("textarea#api-body");p&&(p.oninput=function(){r.value=p.value,localStorage.setItem("url",r.value)}),S&&(S.oninput=function(){a.value=S.value,localStorage.setItem("body",a.value)});document.querySelectorAll("span.tag-key").forEach(function(r){var a,e=r.getAttribute("id");e&&e.includes("[")&&e.includes("]")&&(a=e.substring(e.indexOf("[")+1,e.indexOf("]")),r.addEventListener("click",function(){var e=document.querySelector("table.api-data"),t=document.getElementById("tag-header"),s=(document.querySelectorAll("table.api-data > tbody > tr").forEach(function(e){e.style.display="none"}),document.getElementById(a));s?(s.style.display="table-row",t.style.display="table-row",e.removeAttribute("hidden"),c.innerHTML=r.outerHTML,l.value=r.innerHTML,localStorage.setItem("id",r.innerHTML)):(c.innerHTML="",l.value=""),r.classList.toggle("available","none"===s.style.display),r.classList.toggle("selected","none"!==s.style.display),r.classList.toggle("selected-key","none"!==s.style.display),document.querySelectorAll("span.tag-key").forEach(function(e){e!==r&&e.classList.remove("selected")})}))});var b=document.querySelectorAll("span.trigger"),q=null,f=(b.forEach(function(e){Array.from(e.classList).some(function(e){return e.startsWith("order-status-")})&&(e.classList.add("disabled"),e.classList.remove("available"),t.innerHTML="",i.value=""),e.addEventListener("click",function(){e.classList.contains("available")?(null!==q&&(q.classList.add("available"),q.classList.remove("selected")),e.classList.remove("available"),e.classList.add("selected"),t.innerHTML=e.outerHTML,i.value=e.innerHTML,q=e,localStorage.setItem("trigger",e.innerHTML)):(e.classList.add("available"),e.classList.remove("selected"),t.innerHTML="",i.value="",q=null)})}),document.querySelector("span.filter-tag-basic")),g=document.querySelector("span.filter-tag-advance"),h=document.querySelector("span.filter-tag-expert"),M=document.querySelector("div.next-btn"),T=document.querySelector("div.filter-json-basic"),H=document.querySelector("div.filter-json-advance"),A=document.querySelector("div.filter-json-advance-sample"),E=document.querySelector("div.filter-json-expert"),b=(f&&f.addEventListener("click",function(){f.classList.contains("available")?(f.classList.add("selected"),f.classList.remove("available"),g.classList.add("disabled"),g.classList.remove("available"),h.classList.add("disabled"),h.classList.remove("available"),T.classList.remove("json"),e.innerHTML=f.outerHTML,s.innerHTML=T.outerHTML,n.value=f.innerHTML,localStorage.setItem("mode",f.innerHTML),localStorage.setItem("json","Original JSON will be send")):(f.classList.add("available"),f.classList.remove("selected"),g.classList.add("available"),g.classList.remove("disabled"),h.classList.add("available"),h.classList.remove("disabled"),T.classList.add("json"),e.innerHTML="",s.classList.remove("scroll"),s.innerHTML="",n.value="")}),g&&g.addEventListener("click",function(){g.classList.contains("available")?(g.classList.add("selected"),g.classList.remove("available"),f.classList.add("disabled"),f.classList.remove("available"),h.classList.add("disabled"),h.classList.remove("available"),A.classList.remove("json"),s.innerHTML=A.outerHTML,n.value=f.innerHTML,localStorage.setItem("mode",f.innerHTML),localStorage.setItem("json","Original JSON will be send")):(g.classList.add("available"),g.classList.remove("selected"),f.classList.add("available"),f.classList.remove("disabled"),h.classList.add("available"),h.classList.remove("disabled"),A.classList.add("json"),H.classList.add("json"),e.innerHTML="",s.classList.remove("scroll"),n.value="",o.value="")}),h&&h.addEventListener("click",function(){h.classList.contains("available")?(h.classList.add("selected"),h.classList.remove("available"),f.classList.add("disabled"),f.classList.remove("available"),g.classList.add("disabled"),g.classList.remove("available"),E.classList.remove("json"),e.innerHTML=h.outerHTML,s.innerHTML=E.outerHTML,n.value=h.innerHTML,localStorage.setItem("mode",h.innerHTML),localStorage.setItem("json","Original JSON will be send"),M.setAttribute("hidden","true")):(h.classList.add("available"),h.classList.remove("selected"),f.classList.add("available"),f.classList.remove("disabled"),g.classList.add("available"),g.classList.remove("disabled"),E.classList.add("json"),e.innerHTML="",s.innerHTML="",n.value="",M.removeAttribute("hidden"))}),document.querySelector("div.api-setup")),k=document.querySelector("div.api-submit"),b=("true"===localStorage.getItem("apiRecordVisible")&&(b.setAttribute("hidden","true"),k.removeAttribute("hidden"),d.innerHTML=localStorage.getItem("id"),u.innerHTML=localStorage.getItem("url"),v.innerHTML=localStorage.getItem("trigger"),m.innerHTML=localStorage.getItem("body"),L.innerHTML=localStorage.getItem("mode"),y.innerHTML=localStorage.getItem("json"),localStorage.setItem("apiRecordVisible","false")),document.querySelector("div.save-btn form.save")),k=(b&&b.addEventListener("submit",function(){localStorage.setItem("apiRecordVisible","true")}),document.querySelector("div.back-btn"));k&&k.addEventListener("click",function(){location.reload()})}),window.addEventListener("load",function(){PR.prettyPrint();var a=document.querySelector("div.next-btn"),c=document.querySelector("div.prev-btn"),l=document.querySelector("div.save-btn"),e=document.querySelector("div.preview-btn"),i=document.querySelectorAll("span.trigger"),n=document.querySelectorAll("span.filter-mode"),t=document.querySelectorAll("div.mode-pre"),o=document.querySelector("div.adv-box-table-container"),s=document.querySelector("#api-url"),r=document.querySelector("span.url-tag"),s=(s&&s.addEventListener("click",function(e){e.preventDefault(),r.classList.add("notice-tag")}),document.querySelectorAll("span.step-one-key")),d=document.querySelector("span.key-tag"),s=(s.forEach(function(t){t.addEventListener("click",function(e){t.classList.contains("available")?d.classList.remove("notice-tag"):d.classList.add("notice-tag")})}),document.querySelectorAll("span.trigger")),u=document.querySelector("span.action-tag"),s=(s.forEach(function(t){t.addEventListener("click",function(e){t.classList.contains("available")?u.classList.remove("notice-tag"):u.classList.add("notice-tag")})}),document.querySelector("#api-body")),m=document.querySelector("span.body-tag"),v=(s&&s.addEventListener("click",function(e){e.preventDefault(),m.classList.add("notice-tag")}),document.querySelector("span.filter-tag-basic")),L=document.querySelector("span.filter-tag-advance"),y=document.querySelector("span.filter-tag-expert"),s=document.querySelectorAll("span.filter-mode"),p=document.querySelector("span.select-filter-tag"),S=document.querySelector("span.preview-filter-tag"),b=document.querySelector("div.json-pre"),q=document.querySelector("span.filter-tag");v&&v.addEventListener("click",function(e){e.preventDefault(),q.innerHTML="Basic mode - original json data will be send"}),L&&L.addEventListener("click",function(e){e.preventDefault(),q.innerHTML="Advance mode - filter the json attribute which will be selected"}),y&&y.addEventListener("click",function(e){e.preventDefault(),q.innerHTML="Expert mode - Any custom fields will be filtered, Stay tuned for updates"}),s.forEach(function(t){t.addEventListener("click",function(e){e.preventDefault(),t.classList.contains("available")?(p.classList.remove("notice-tag"),S.classList.remove("notice-tag"),q.removeAttribute("hidden"),b.removeAttribute("hidden")):(p.classList.add("notice-tag"),S.classList.add("notice-tag"),q.setAttribute("hidden","true"),b.setAttribute("hidden","true"))})});document.querySelectorAll('input[class^="final-"]').forEach(function(e){e.type="hidden"}),c&&e.setAttribute("hidden","true"),a&&a.addEventListener("click",function(e){e.preventDefault();var e=document.querySelector(".api-data"),t=document.querySelector("input#api-url"),s=(!e.hasAttribute("hidden")&""!==t.value.trim()?(document.querySelector(".step-1").classList.remove("active"),document.querySelector(".step-2").classList.add("active"),document.querySelector(".step-3").classList.remove("active"),document.querySelector(".step-4").classList.remove("active"),document.querySelector("#step-01").classList.remove("current"),document.querySelector("#step-02").classList.add("current"),document.querySelector("#step-03").classList.remove("current"),document.querySelector("#step-04").classList.remove("current"),c.removeAttribute("hidden"),a.querySelector("input#submit").value="Next"):t.setAttribute("placeholder","API URL Required"),document.querySelector("textarea#api-body"));function r(){document.querySelector(".step-1").classList.remove("active"),document.querySelector(".step-2").classList.remove("active"),document.querySelector(".step-3").classList.remove("active"),document.querySelector(".step-4").classList.add("active"),document.querySelector("#step-01").classList.remove("current"),document.querySelector("#step-02").classList.remove("current"),document.querySelector("#step-03").classList.remove("current"),document.querySelector("#step-04").classList.add("current"),a.setAttribute("hidden","true"),c.setAttribute("hidden","true"),l.removeAttribute("hidden")}i.forEach(function(e){e.classList.contains("selected")&&""!==s.value.trim()?(document.querySelector(".step-1").classList.remove("active"),document.querySelector(".step-2").classList.remove("active"),document.querySelector(".step-3").classList.add("active"),document.querySelector(".step-4").classList.remove("active"),document.querySelector("#step-01").classList.remove("current"),document.querySelector("#step-02").classList.remove("current"),document.querySelector("#step-03").classList.add("current"),document.querySelector("#step-04").classList.remove("current"),a.querySelector("input#submit").value="Save"):s.setAttribute("placeholder","API Body Required")}),n.forEach(function(e){v.classList.contains("selected")&&r(),L.classList.contains("selected")&&""!==o.innerHTML&&r()})});var f=document.querySelector("#step-01"),g=document.querySelector("#step-02"),h=document.querySelector("#step-03"),M=document.querySelector("#step-04");c&&c.addEventListener("click",function(e){e.preventDefault(),g.classList.contains("current")&&(f.classList.add("current"),g.classList.remove("current"),h.classList.remove("current"),M.classList.remove("current"),i.forEach(function(e){e.classList.remove("selected")}),u.classList.remove("notice-tag"),document.querySelector(".step-1").classList.add("active"),document.querySelector(".step-2").classList.remove("active"),c.setAttribute("hidden","true"),a.querySelector("input#submit").value="Next"),h.classList.contains("current")&&(g.classList.add("current"),f.classList.remove("current"),h.classList.remove("current"),M.classList.remove("current"),u.classList.remove("notice-tag"),i.forEach(function(e){e.classList.remove("selected")}),n.forEach(function(e){e.classList.remove("selected"),e.classList.remove("disabled"),e.classList.add("available")}),t.forEach(function(e){e.classList.add("json")}),document.querySelector(".step-2").classList.add("active"),document.querySelector(".step-1").classList.remove("active"),document.querySelector(".step-3").classList.remove("active"),a.removeAttribute("hidden"),c.removeAttribute("hidden"),l.setAttribute("hidden","true"),a.querySelector("input#submit").value="Next"),M.classList.contains("current")&&(h.classList.add("current"),f.classList.remove("current"),g.classList.remove("current"),M.classList.remove("current"),u.classList.remove("notice-tag"),i.forEach(function(e){e.classList.remove("selected")}),document.querySelector(".step-3").classList.add("active"),document.querySelector(".step-1").classList.remove("active"),document.querySelector(".step-2").classList.remove("active"),document.querySelector(".step-4").classList.remove("active"),a.removeAttribute("hidden"),c.removeAttribute("hidden"),l.setAttribute("hidden","true"),v.classList.remove("disabled"),advanceTagclassList.remove("disabled"),y.classList.remove("disabled"),a.querySelector("input#submit").value="Next")})})},{}]},{},[1]);
     1!function r(a,c,i){function l(t,e){if(!c[t]){if(!a[t]){var s="function"==typeof require&&require;if(!e&&s)return s(t,!0);if(o)return o(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}s=c[t]={exports:{}},a[t][0].call(s.exports,function(e){return l(a[t][1][e]||e)},s,s.exports,r,a,c,i)}return c[t].exports}for(var o="function"==typeof require&&require,e=0;e<i.length;e++)l(i[e]);return l}({1:[function(e,t,s){"use strict";document.addEventListener("DOMContentLoaded",function(){PR.prettyPrint();var c=document.querySelector("div.selected-key"),t=document.querySelector("div.trigger-action"),e=document.querySelector("div.api-mode"),s=document.querySelector("div.json-mode > pre"),i=document.querySelector(".final-id"),r=document.querySelector(".final-url"),a=document.querySelector(".final-body"),l=document.querySelector(".final-trigger"),o=document.querySelector(".final-mode"),n=document.querySelector(".final-json"),d=document.querySelector("span.api-id"),u=document.querySelector("span.api-url"),m=document.querySelector("span.api-body"),v=document.querySelector("span.api-trigger"),L=document.querySelector("span.api-mode"),y=document.querySelector("span.api-json"),p=document.querySelector("input#api-url"),S=document.querySelector("textarea#api-body");p&&(p.oninput=function(){r.value=p.value,localStorage.setItem("url",r.value)}),S&&(S.oninput=function(){a.value=S.value,localStorage.setItem("body",a.value)});document.querySelectorAll("span.tag-key").forEach(function(r){var a,e=r.getAttribute("id");e&&e.includes("[")&&e.includes("]")&&(a=e.substring(e.indexOf("[")+1,e.indexOf("]")),r.addEventListener("click",function(){var e=document.querySelector("table.api-data"),t=document.getElementById("tag-header"),s=(document.querySelectorAll("table.api-data > tbody > tr").forEach(function(e){e.style.display="none"}),document.getElementById(a));s?(s.style.display="table-row",t.style.display="table-row",e.removeAttribute("hidden"),c.innerHTML=r.outerHTML,i.value=r.innerHTML,localStorage.setItem("id",r.innerHTML)):(c.innerHTML="",i.value=""),r.classList.toggle("available","none"===s.style.display),r.classList.toggle("selected","none"!==s.style.display),r.classList.toggle("selected-key","none"!==s.style.display),document.querySelectorAll("span.tag-key").forEach(function(e){e!==r&&e.classList.remove("selected")})}))});var q=document.querySelectorAll("span.trigger"),b=null,f=(q.forEach(function(e){Array.from(e.classList).some(function(e){return e.startsWith("order-status-")})&&(e.classList.add("disabled"),e.classList.remove("available"),t.innerHTML="",l.value=""),e.addEventListener("click",function(){e.classList.contains("available")?(null!==b&&(b.classList.add("available"),b.classList.remove("selected")),e.classList.remove("available"),e.classList.add("selected"),t.innerHTML=e.outerHTML,l.value=e.innerHTML,b=e,localStorage.setItem("trigger",e.innerHTML)):(e.classList.add("available"),e.classList.remove("selected"),t.innerHTML="",l.value="",b=null)})}),document.querySelector("span.filter-tag-basic")),g=document.querySelector("span.filter-tag-advance"),M=document.querySelector("span.filter-tag-expert"),T=document.querySelector("div.next-btn"),H=document.querySelector("div.filter-json-basic"),h=document.querySelector("div.filter-json-advance"),A=document.querySelector("div.filter-json-advance-sample"),E=document.querySelector("div.filter-json-expert"),q=(f&&f.addEventListener("click",function(){f.classList.contains("available")?(f.classList.add("selected"),f.classList.remove("available"),g.classList.add("disabled"),g.classList.remove("available"),M.classList.add("disabled"),M.classList.remove("available"),H.classList.remove("json"),e.innerHTML=f.outerHTML,s.innerHTML=H.outerHTML,o.value=f.innerHTML,localStorage.setItem("mode",f.innerHTML),localStorage.setItem("json","Original JSON will be send")):(f.classList.add("available"),f.classList.remove("selected"),g.classList.add("available"),g.classList.remove("disabled"),M.classList.add("available"),M.classList.remove("disabled"),H.classList.add("json"),e.innerHTML="",s.classList.remove("scroll"),s.innerHTML="",o.value="")}),g&&g.addEventListener("click",function(){g.classList.contains("available")?(g.classList.add("selected"),g.classList.remove("available"),f.classList.add("disabled"),f.classList.remove("available"),M.classList.add("disabled"),M.classList.remove("available"),A.classList.remove("json"),e.innerHTML=g.outerHTML,s.innerHTML=s.outerHTML,o.value=g.innerHTML,localStorage.setItem("mode",g.innerHTML)):(g.classList.add("available"),g.classList.remove("selected"),f.classList.add("available"),f.classList.remove("disabled"),M.classList.add("available"),M.classList.remove("disabled"),A.classList.add("json"),h.classList.add("json"),e.innerHTML="",s.classList.remove("scroll"),o.value="",n.value="")}),M&&M.addEventListener("click",function(){M.classList.contains("available")?(M.classList.add("selected"),M.classList.remove("available"),f.classList.add("disabled"),f.classList.remove("available"),g.classList.add("disabled"),g.classList.remove("available"),E.classList.remove("json"),e.innerHTML=M.outerHTML,s.innerHTML=E.outerHTML,o.value=M.innerHTML,localStorage.setItem("mode",M.innerHTML),localStorage.setItem("json","Original JSON will be send"),T.setAttribute("hidden","true")):(M.classList.add("available"),M.classList.remove("selected"),f.classList.add("available"),f.classList.remove("disabled"),g.classList.add("available"),g.classList.remove("disabled"),E.classList.add("json"),e.innerHTML="",s.innerHTML="",o.value="",T.removeAttribute("hidden"))}),document.querySelector("div.api-setup")),I=document.querySelector("div.api-submit"),q=("true"===localStorage.getItem("apiRecordVisible")&&(q.setAttribute("hidden","true"),I.removeAttribute("hidden"),d.innerHTML=localStorage.getItem("id"),u.innerHTML=localStorage.getItem("url"),v.innerHTML=localStorage.getItem("trigger"),m.innerHTML=localStorage.getItem("body"),L.innerHTML=localStorage.getItem("mode"),y.innerHTML=localStorage.getItem("json"),localStorage.setItem("apiRecordVisible","false")),document.querySelector("div.save-btn form.save")),I=(q&&q.addEventListener("submit",function(){localStorage.setItem("apiRecordVisible","true")}),document.querySelector("div.back-btn"));I&&I.addEventListener("click",function(){location.reload()})}),window.addEventListener("load",function(){PR.prettyPrint();var a=document.querySelector("div.next-btn"),c=document.querySelector("div.prev-btn"),i=document.querySelector("div.save-btn"),e=document.querySelector("div.preview-btn"),l=document.querySelectorAll("span.trigger"),o=document.querySelectorAll("span.filter-mode"),t=document.querySelectorAll("div.mode-pre"),n=document.querySelector("div.adv-box-table-container"),s=document.querySelector(".final-json"),r=document.querySelector("#api-url"),d=document.querySelector("span.url-tag"),r=(r&&r.addEventListener("click",function(e){e.preventDefault(),d.classList.add("notice-tag")}),document.querySelectorAll("span.step-one-key")),u=document.querySelector("span.key-tag"),r=(r.forEach(function(t){t.addEventListener("click",function(e){t.classList.contains("available")?u.classList.remove("notice-tag"):u.classList.add("notice-tag")})}),document.querySelectorAll("span.trigger")),m=document.querySelector("span.action-tag"),r=(r.forEach(function(t){t.addEventListener("click",function(e){t.classList.contains("available")?m.classList.remove("notice-tag"):m.classList.add("notice-tag")})}),document.querySelector("#api-body")),v=document.querySelector("span.body-tag"),L=(r&&r.addEventListener("click",function(e){e.preventDefault(),v.classList.add("notice-tag")}),document.querySelector("span.filter-tag-basic")),y=document.querySelector("span.filter-tag-advance"),p=document.querySelector("span.filter-tag-expert"),r=document.querySelectorAll("span.filter-mode"),S=document.querySelector("span.select-filter-tag"),q=document.querySelector("span.preview-filter-tag"),b=document.querySelector("div.json-pre"),f=document.querySelector("div.json-mode > pre"),g=document.querySelector("span.fields-product-id"),M=document.querySelector("span.fields-product-name"),T=document.querySelector("span.fields-product-total"),H=document.getElementById("filter-output"),h={name:void 0,product_id:void 0,total:void 0};function A(e){e.classList.toggle("selected")}function E(){var e={},e=(void 0!==h.name&&(e.name=h.name),void 0!==h.product_id&&(e.product_id=h.product_id),void 0!==h.total&&(e.total=h.total),JSON.stringify({line_items:[e]},null,2));H.innerHTML=e,s.value=e,f.innerHTML=e,n.innerHTML="<span>Hello.AnyAPI</span>",localStorage.setItem("json",s.value)}g&&g.addEventListener("click",function(e){e.preventDefault(),A(g),h.product_id=void 0===h.product_id?"":void 0,E()}),M&&M.addEventListener("click",function(e){e.preventDefault(),A(M),h.name=void 0===h.name?"":void 0,E()}),T&&T.addEventListener("click",function(e){e.preventDefault(),A(T),h.total=void 0===h.total?"":void 0,E()}),r.forEach(function(t){t.addEventListener("click",function(e){e.preventDefault(),t.classList.contains("available")?(S.classList.remove("notice-tag"),q.classList.remove("notice-tag"),b.removeAttribute("hidden")):(S.classList.add("notice-tag"),q.classList.add("notice-tag"),b.setAttribute("hidden","true"))})});document.querySelectorAll('input[class^="final-"]').forEach(function(e){e.type="hidden"}),c&&e.setAttribute("hidden","true"),a&&a.addEventListener("click",function(e){e.preventDefault();var e=document.querySelector(".api-data"),t=document.querySelector("input#api-url"),s=(!e.hasAttribute("hidden")&""!==t.value.trim()?(document.querySelector(".step-1").classList.remove("active"),document.querySelector(".step-2").classList.add("active"),document.querySelector(".step-3").classList.remove("active"),document.querySelector(".step-4").classList.remove("active"),document.querySelector("#step-01").classList.remove("current"),document.querySelector("#step-02").classList.add("current"),document.querySelector("#step-03").classList.remove("current"),document.querySelector("#step-04").classList.remove("current"),c.removeAttribute("hidden"),a.querySelector("input#submit").value="Next"):t.setAttribute("placeholder","API URL Required"),document.querySelector("textarea#api-body"));function r(){document.querySelector(".step-1").classList.remove("active"),document.querySelector(".step-2").classList.remove("active"),document.querySelector(".step-3").classList.remove("active"),document.querySelector(".step-4").classList.add("active"),document.querySelector("#step-01").classList.remove("current"),document.querySelector("#step-02").classList.remove("current"),document.querySelector("#step-03").classList.remove("current"),document.querySelector("#step-04").classList.add("current"),a.setAttribute("hidden","true"),c.setAttribute("hidden","true"),i.removeAttribute("hidden")}l.forEach(function(e){e.classList.contains("selected")&&""!==s.value.trim()?(document.querySelector(".step-1").classList.remove("active"),document.querySelector(".step-2").classList.remove("active"),document.querySelector(".step-3").classList.add("active"),document.querySelector(".step-4").classList.remove("active"),document.querySelector("#step-01").classList.remove("current"),document.querySelector("#step-02").classList.remove("current"),document.querySelector("#step-03").classList.add("current"),document.querySelector("#step-04").classList.remove("current"),a.querySelector("input#submit").value="Save"):s.setAttribute("placeholder","API Body Required")}),o.forEach(function(e){L.classList.contains("selected")&&r(),y.classList.contains("selected")&&""!==n.innerHTML&&r()})});var I=document.querySelector("#step-01"),k=document.querySelector("#step-02"),j=document.querySelector("#step-03"),x=document.querySelector("#step-04");c&&c.addEventListener("click",function(e){e.preventDefault(),k.classList.contains("current")&&(I.classList.add("current"),k.classList.remove("current"),j.classList.remove("current"),x.classList.remove("current"),l.forEach(function(e){e.classList.remove("selected")}),m.classList.remove("notice-tag"),document.querySelector(".step-1").classList.add("active"),document.querySelector(".step-2").classList.remove("active"),c.setAttribute("hidden","true"),a.querySelector("input#submit").value="Next"),j.classList.contains("current")&&(k.classList.add("current"),I.classList.remove("current"),j.classList.remove("current"),x.classList.remove("current"),m.classList.remove("notice-tag"),l.forEach(function(e){e.classList.remove("selected")}),o.forEach(function(e){e.classList.remove("selected"),e.classList.remove("disabled"),e.classList.add("available")}),t.forEach(function(e){e.classList.add("json")}),document.querySelector(".step-2").classList.add("active"),document.querySelector(".step-1").classList.remove("active"),document.querySelector(".step-3").classList.remove("active"),a.removeAttribute("hidden"),c.removeAttribute("hidden"),i.setAttribute("hidden","true"),a.querySelector("input#submit").value="Next"),x.classList.contains("current")&&(j.classList.add("current"),I.classList.remove("current"),k.classList.remove("current"),x.classList.remove("current"),m.classList.remove("notice-tag"),l.forEach(function(e){e.classList.remove("selected")}),document.querySelector(".step-3").classList.add("active"),document.querySelector(".step-1").classList.remove("active"),document.querySelector(".step-2").classList.remove("active"),document.querySelector(".step-4").classList.remove("active"),a.removeAttribute("hidden"),c.removeAttribute("hidden"),i.setAttribute("hidden","true"),L.classList.remove("disabled"),advanceTagclassList.remove("disabled"),p.classList.remove("disabled"),a.querySelector("input#submit").value="Next")})})},{}]},{},[1]);
  • anyapi/trunk/inc/Admin.php

    r3376733 r3394506  
    3737    add_action( 'admin_enqueue_scripts', array( $this, 'enqueueFiles') );
    3838
    39     add_action( 'wp_ajax_close_numberofkey_notice', function() {
    40       set_transient( 'anyapi_numberofkey_notice_closed', true, 1800 );
     39    add_action( 'wp_ajax_close_notice', function() {
     40      set_transient( 'anyapi_notice_closed', true, 259200 );
    4141    });
    4242
     
    221221    $apiStatus    = get_option( $name[ 'anyApiOrderApi' ], array() );
    222222    $notice       = self::getConfig()[ 'message' ];
     223    $logCount     = self::getNumberOfLog( 'count' , 'anyapi_log_anyapi' );
    223224
    224225    if ( ! isset( $numberOfKey ) || count( $numberOfKey ) === 0 ) {
    225       $type     = 'updated';
    226       $message  = $notice[ 'system_1' ];
    227       if ( get_transient( 'anyapi_numberofkey_notice_closed' ) ) {
    228         return;
    229       }
    230       $this->adminMessage( 'anyapi', 'number-of-keys', $type, $message );
     226      $type     = 'notice';
     227      $message  = '<h4>' . $notice[ 'system_1' ] . '</h4>';
     228      $this->adminMessage(
     229        'anyapi',
     230        '',
     231        $type,
     232        $message,
     233        '',
     234      );
    231235    }
    232236
     
    234238      foreach ( $apiStatus as $key ) {
    235239        if ( ! isset( $key['status'] ) ) {
    236           $type     = 'updated';
    237           $message  = $notice[ 'system_2' ];
    238           $this->adminMessage( 'anyapi_orderapi', '', $type, $message );
     240          $type     = 'notice';
     241          $message  = '<h4>' . $notice[ 'system_2' ] . '</h4>';
     242          $this->adminMessage(
     243            'anyapi_orderapi',
     244            '',
     245            $type,
     246            $message,
     247            '',
     248          );
    239249        }
    240250      }
    241251    }
    242252
    243   }
    244 
    245   private function adminMessage( $page, $class, $type, $message ) {
     253    if ( isset( $logCount ) && $logCount > 10 ) {
     254      if ( get_transient( 'anyapi_notice_closed' ) ) {
     255        return;
     256      }
     257      $type     = 'updated';
     258      $text     = $notice[ 'system_3' ];
     259      $message  = sprintf(
     260        '<p>📨 Thank you for using the <a href="%s"><span class="tag tag--new">AnyAPI</span></a> plugin. You’ve been using the Order API Integration  '. $logCount .' times now.</p>
     261        <p>'. $text .'</p>',
     262esc_url( '/wp-admin/admin.php?page=anyapi' ),
     263      );
     264      $button   = sprintf(
     265'<a href="%s" class="btn btn--full small notice-action-button" target="_blank" rel="noopener">%s</a>',
     266esc_url( 'https://wordpress.org/support/plugin/anyapi/reviews' ),
     267        esc_html( 'Rate AnyAPI' )
     268      );
     269      $this->adminMessage(
     270        '',
     271        'notice-action',
     272        $type,
     273        $message,
     274        $button
     275       );
     276    }
     277
     278  }
     279
     280  private function adminMessage( $page, $class, $type, $message, $button ) {
    246281
    247282    if ( ! $message ) return ;
    248     if ( isset( $_GET[ 'page' ] ) && $_GET[ 'page' ] === $page ) {
    249       echo '<div class="notice is-dismissible '. esc_attr( $class ).' ' . esc_attr( $type ) . '"><p>' . esc_html ( $message ). '</p></div>';
     283
     284    if ( empty( $page ) || isset( $_GET[ 'page' ] ) && sanitize_key( $_GET[ 'page' ] ) === $page ) {
     285      echo sprintf(
     286'<div class="notice is-dismissible %s %s">%s%s</div>',
     287esc_attr( $class ),
     288        esc_attr( $type ),
     289        wp_kses_post( $message ),
     290        wp_kses_post( $button )
     291      );
     292    }
     293
     294  }
     295
     296  private function getNumberOfLog( $cache, $suffix ) {
     297
     298    global $wpdb;
     299    $results      = wp_cache_get( 'anyapi_log_'. $cache, 'anyapi_log_cache' );
     300    $searchTable  = $wpdb->prefix . $suffix;
     301
     302    if ( false === $results ) {
     303      // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery -- Custom table query required for API logs.
     304      $results = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM %i" , $searchTable ) );
     305      wp_cache_set( 'anyapi_log_'. $cache, $results, 'anyapi_log_cache', 300 );
     306      return $results;
    250307    }
    251308
     
    408465      'message'       => array(
    409466        'system_1'    => 'Reminder : Create first Order API Integrations with API key.',
    410         'system_2'    => 'Reminder : Toogle the status to activate the trigger for API Integration.'
     467        'system_2'    => 'Reminder : Toogle the status to activate the trigger for API Integration.',
     468        'system_3'    => 'We hope you’re happy with our service. Any feedback, positive or negative, is appreciated and helps us improve it. 😊'
    411469      ),
    412470    );
  • anyapi/trunk/inc/Anyapi.php

    r3376733 r3394506  
    4141
    4242    $this->option = self::getOption();
    43     // $this->restApiRespond();
    4443
    4544  }
  • anyapi/trunk/inc/Controller/OrderIntegrations.php

    r3323765 r3394506  
    4949
    5050          $id = trim( $option[ 'id' ] );
    51 
    5251          $args = $this->initOrderApi( $id, $option[ 'trigger' ] );
     52
    5353          if ( empty( $args ) ) { return; };
    5454
     
    5757            if ( $id === trim( $key[ 'id' ] ) ) {
    5858
    59               $params = [
     59              $params = array(
    6060                'id'        => $id,
    6161                'trigger'   => $option[ 'trigger' ],
    6262                'args'      => $key,
    63               ];
     63              );
    6464
    6565              add_action( $hook, function( $order_id ) use ( $params ) {
     
    131131  public function handleOrderApi( $order_id, $params ) {
    132132
    133     $id       = $params[ 'id' ];
    134133    $trigger  = $params[ 'trigger' ];
    135134    $args     = $params[ 'args' ];
     
    154153    }
    155154
     155    if ( ! empty( $args['json'] ) ) {
     156      $json         = json_decode( $args['json'], true );
     157      $attributes   = $this->jsonFilter( $json, $order_id );
     158      if ( is_array( $attributes ) && ! empty( $attributes ) ) {
     159        $body[ 'Order Attributes' ] = $attributes;
     160      }
     161    }
     162
    156163    if ( empty( $body[ 'Order Attributes' ] ) ) {
    157164      $order                = wc_get_order( $order_id );
     
    177184
    178185    $this->apiLog( $response, $order_id, $trigger );
     186
     187  }
     188
     189  private function jsonFilter( $json, $orderId ) {
     190
     191    if ( ! is_array( $json ) || empty( $json['line_items'] ) ) {
     192      return null;
     193    }
     194
     195    $order = wc_get_order( $orderId );
     196    if ( ! $order ) return null;
     197
     198    $sampleItem = $json['line_items'][0] ?? [];
     199    if ( ! is_array( $sampleItem ) ) return null;
     200
     201    $requestedKeys = array_keys( $sampleItem );
     202    if ( empty( $requestedKeys ) ) return null;
     203
     204    $keyMap = [
     205      'name'       => 'get_name',
     206      'product_id' => 'get_product_id',
     207      'total'      => 'get_total',
     208    ];
     209
     210    $neededMethods = [];
     211    foreach ( $requestedKeys as $key ) {
     212      if ( isset( $keyMap[ $key ] ) ) {
     213        $neededMethods[ $key ] = $keyMap[ $key ];
     214      }
     215    }
     216    if ( empty( $neededMethods ) ) return null;
     217
     218    $productData = [];
     219    foreach ( $order->get_items() as $item ) {
     220      $row = [];
     221      foreach ( $neededMethods as $targetKey => $method ) {
     222        $row[ $targetKey ] = $item->{ $method }();
     223      }
     224      if ( ! empty( $row ) ) {
     225        $productData[] = $row;
     226      }
     227    }
     228    return $productData;
    179229
    180230  }
  • anyapi/trunk/inc/Views/Dashboard.php

    r3347672 r3394506  
    3232
    3333    echo '<ul class="feature-attributes">';
    34     echo '<li class="feature-attribute"><span><strong>Easy</strong> to Setup</span></li>';
    35     echo '<li class="feature-attribute"><span><strong>Tigger</strong> Order Status</span></li>';
    36     echo '<li class="feature-attribute"><span><strong>Preview</strong> API JSON</span></li>';
    37     echo '<li class="feature-attribute"><span><strong>Filter</strong> Order API fields</span><div class="image-container"><img src="' . esc_url( Anyapi::getImages( 'lite' ) ) . '" alt="" width="16" height="16"></div></li>';
     34    echo '<li class="feature-attribute"><span><strong>Easy</strong> to <b>Automate</b> WooCommerce Order</span></li>';
     35    echo '<li class="feature-attribute"><span><strong>Trigger</strong> Order Created</span></li>';
     36    echo '<li class="feature-attribute"><span><strong>Preview</strong> API JSON Fields</span></li>';
     37    echo '<li class="feature-attribute"><span><strong>Filter</strong> Order API Fields</span><div class="image-container"><img src="' . esc_url( Anyapi::getImages( 'lite' ) ) . '" alt="" width="16" height="16"></div></li>';
    3838    echo '</ul>';
    3939
     
    4343
    4444    echo '<ul class="feature-attributes">';
    45     echo '<li class="feature-attribute"><span><strong>Log</strong> all API data</span></li>';
    46     echo '<li class="feature-attribute"><span><strong>HTTP</strong> Response</span></li>';
    47     echo '<li class="feature-attribute"><span><strong>Payload</strong> Logs</span></li>';
    48     echo '<li class="feature-attribute"><span><strong>Order API</strong> Logs</span><div class="image-container"><img src="' . esc_url( Anyapi::getImages( 'lite' ) ) . '" alt="" width="16" height="16"></div></li>';
     45    echo '<li class="feature-attribute"><span><strong>Monitor</strong> <b>Real-time</b> API Logging</span></li>';
     46    echo '<li class="feature-attribute"><span><strong>Track</strong> API Performance</span></li>';
     47    echo '<li class="feature-attribute"><span><strong>Logs</strong> Including Status, Payloads, Error etc..</span></li>';
     48    echo '<li class="feature-attribute"><span><strong>Full</strong> API Logs</span><div class="image-container"><img src="' . esc_url( Anyapi::getImages( 'lite' ) ) . '" alt="" width="16" height="16"></div></li>';
    4949    echo '</ul>';
    5050
     
    105105      $inputValue   = '';
    106106      echo '<div class="api-input-form">';
    107       echo '<label for="' . esc_attr( $label ) . '">' . esc_attr( $label ) . '<div class="image-container"><img src="' . esc_url( $image ) . '" alt="" width="16" height="16"><div class="image-container"><div class="image-info"><p>'. esc_attr( $tooltips ) .'</p></div></div></div></label><input type="text" id="' . esc_attr( $name ) . '" name="' . esc_attr( $optionName ). '[' . esc_attr( $name ) . ']" value="' . esc_attr( $inputValue ). '" placeholder="' . esc_attr( $placeholder ) . '" required>
     107      echo '<label for="' . esc_attr( $label ) . '" class="api-label">' . esc_attr( $label );
     108      echo '<span class="image-wrapper">';
     109      echo '<img src="' . esc_url( $image ) . '" alt="" width="16" height="16">';
     110      echo '<span class="image-info">'. esc_attr( $tooltips ) .'</span>';
     111      echo '</span></label>';
     112      echo '<input type="text" id="' . esc_attr( $name ) . '" name="' . esc_attr( $optionName ). '[' . esc_attr( $name ) . ']" value="' . esc_attr( $inputValue ). '" placeholder="' . esc_attr( $placeholder ) . '" required>
    108113      </div>';
     114
    109115    }
    110116
     
    193199      'keyId'       => array(
    194200        'id'          => array(
    195           'title'       => 'Description',
    196           'placeholder' => 'Name of API Key',
    197           'tooltip'     => 'Enter the unique name of API Key',
     201          'title'       => 'Name',
     202          'placeholder' => 'ID of Automation (Webhook)',
     203          'tooltip'     => 'Unique name for identifying this Automation',
    198204        ),
    199205      ),
     
    201207        'basicKey'    => array(
    202208          'title'       => 'Consumer Key',
    203           'placeholder' => 'Enter consumer key',
    204           'tooltip'     => 'Please enter the Basic Auth Consumer Key',
     209          'placeholder' => 'Username',
     210          'tooltip'     => 'Basic Auth Consumer Key refers to an identifier assigned to the URL',
    205211        ),
    206212        'basicSecret' => array(
    207213          'title'       => 'Consumer Secret',
    208           'placeholder' => 'Enter consumer secret',
    209           'tooltip'     => 'Please enter the Basic Auth Consumer Secret',
     214          'placeholder' => 'Password',
     215          'tooltip'     => 'Basic Auth Consumer Secret used to sign requests or generate access tokens',
    210216        ),
    211217      ),
     
    213219        'bearerToken' => array(
    214220          'title'       => 'Token',
    215           'placeholder' => 'Enter token',
    216           'tooltip'     => 'Please enter the Bearer Token ',
     221          'placeholder' => 'Token',
     222          'tooltip'     => 'Bearer Token requests to access a protected API or resource',
    217223        ),
    218224      ),
  • anyapi/trunk/inc/Views/OrderApi.php

    r3347672 r3394506  
    1818    $image = Anyapi::getImages( 'tips' );
    1919    echo '<div class="api-input-form">';
    20     echo '<div class="feature-tags"><span class="">Add a new API Integration</span></div>';
     20    echo '<div class="feature-tags"><span class="tag tag--cap"><b>Create a new API Automation</span></b></div>';
    2121    echo '<div class="feature-tags">';
    2222    echo "<span class=\"tag-key tag large tag--large url-tag\">Enter URL</span></div>";
    2323    echo '<div class="api-input-form">';
    24     echo '<label for="apiurl">URL<div class="image-container"><img src="' . esc_url( $image ) . '" alt="" width="16" height="16"><div class="image-container"><div class="image-info"><p>API request for order api intgeration</p></div></div></div></label>';
    25     echo '<input type="text" class="" id="api-url" name=""  placeholder="Please input API URL" value=""></div>';
     24    echo '<label for="apiurl" class="api-label">URL';
     25    echo '<img src="' . esc_url( $image ) . '" alt="" width="16" height="16">';
     26    echo '<span class="image-info">URL where the payload deliverd (JSON)</span>';
     27    echo '</span></label>';
     28    echo '<input type="text" id="api-url" name=""  placeholder="Please input API URL" value=""></div>';
    2629    echo '</div>';
    2730
     
    7578
    7679    echo '<div class="api-input-form">';
    77     echo '<div class="feature-tags">';
    78     echo "<span class=\"tag-key tag large tag--large body-tag\">Enter API Body</span></div>";
    79     echo '<label for="apibody">API BODY<div class="image-container"><img src="' . esc_url( $image ) . '" alt="" width="16" height="16"><div class="image-container"><div class="image-info"><p>API request BODY which will be send out</p></div></div></div></label>';
    80     echo '<textarea id="api-body" name="" class="" placeholder="Please input API BODY" value="" rows="6"></textarea></div>';
    81 
    82     echo '<div class="api-input-form">';
    83     echo '<div class="feature-tags"><span class="">Create Order API actions</span></div>';
    84     echo '<div class="feature-tags">';
    85     echo "<span class=\"tag-key tag large tag--large action-tag\">Select Order API actions</span></div>";
     80    echo '<div class="feature-tags"><span class="tag tag--cap"><b>Create Order Actions that will trigger in this Automation</b></span></div>';
     81    echo '<div class="feature-tags">';
     82    echo "<span class=\"tag-key tag large tag--large action-tag\">Select Actions</span></div>";
    8683
    8784    $fields = self::fields();
    88     foreach( $fields[ 'action' ] as $key => $value ) {
    89       $class  = $value['class' ];
    90       $text   = $value[ 'text' ];
    91       echo '<div class="feature-tags order-status">';
    92       echo '<span class="' . esc_attr( $class ) . ' tag tag--woo">' . esc_attr( $text ) . '</span>';
    93       if ( $key !== 'thankyou' && $key !== 'new order' ) {
    94         echo '<div class="image-container"><img src="' . esc_url( $image2 ) . '" alt="" width="16" height="16"></div>';
    95       }
     85    echo '<div class="action-tags order-status">';
     86
     87    foreach ( $fields[ 'action' ] as $key => $value ) {
     88      $class  = $value[ 'class' ];
     89      $title  = $value[ 'title'];
     90      $text   = $value[ 'text'];
     91      echo '<div class="tag-item">';
     92      echo '<div class="tag-wrapper">';
     93      echo '<span class="' . esc_attr( $class ) . ' tag tag--woo">' . esc_html( $title ) . '</span>';
     94      if ($key !== 'thankyou' && $key !== 'new order') {
     95        echo '<div class="image-container"><img src="' . esc_url($image2) . '" alt="" width="16" height="16"></div>';
     96      }
     97      echo '</div>';
     98      echo '<p class="tag-desc">'. esc_attr( $text ) .'</p>';
    9699      echo '</div>';
    97100    }
    98 
     101    echo '</div>';
     102
     103    echo '<div class="api-input-form">';
     104    echo '<div class="feature-tags">';
     105    echo "<span class=\"tag-key tag large tag--large body-tag\">Enter API Body</span></div>";
     106    echo '</div>';
     107
     108    echo '<div class="api-input-form">';
     109    echo '<label for="apibody" class="api-label">API BODY';
     110    echo '<span class="image-wrapper">';
     111    echo '<img src="' . esc_url( $image ) . '" alt="" width="16" height="16">';
     112    echo '<span class="image-info">Payload or data you send in the request body to the APIs</span>';
     113    echo '</span></label>';
     114    echo '<textarea id="api-body" name="" class="" placeholder="Please input API BODY" value="" rows="6"></textarea></div>';
    99115    echo '</div>';
    100116
     
    109125    echo '<hr><br>';
    110126    echo '<div class="api-input-form">';
    111     echo '<div class="feature-tags"><span class="">Preview json</span></div>';
     127    echo '<div class="feature-tags"><span class="tag tag--cap"><b>Preview JSON</b></span></div>';
    112128    echo '<div class="feature-tags">';
    113129    echo "<span class=\"tag-key tag large tag--large select-filter-tag\">Select filter mode</span></div>";
     
    123139    echo "<span class=\"tag-key tag large tag--large preview-filter-tag\">Preview Json</span></div>";
    124140    echo '<div class="feature-hidden json-pre" hidden>';
    125     echo "<span class=\"tag-key tag tag--woo filter-tag\"></span></div>";
     141    echo '</div>';
    126142
    127143    // Basic mode
     
    135151  public function selectApiFields() {
    136152
     153    $image2   = Anyapi::getImages( 'lite' );
     154
    137155    // Advance mode
    138156    echo '<div class="filter-json-advance mode-pre json">';
    139157    echo '<div class="adv-box-table-container"></div></div>';
    140158
     159    // Advance mode filter
     160    echo '<div class="filter-json-advance-sample mode-pre json">';
     161
     162    echo '<div class="feature-tags order-properties">';
     163    echo '<span class="fields-line-items tag tag--order available">Line items fields</span>';
     164    echo '<span class="fields-product-id tag tag--fields available">Product ID</span>';
     165    echo '<span class="fields-product-name tag tag--fields available">Product name</span>';
     166    echo '<span class="fields-product-total tag tag--fields available">Total</span>';
     167    echo '</div>';
     168
     169    echo '<div class="feature-tags order-properties">';
     170    echo '<a href="https://anyapiplugin.com/pricing"><span class="upgrade tag tag--woo available">Unlock All fields</span></a>';
     171    echo '<div class="image-container"><img src="' . esc_url( $image2 ) . '" alt="" width="16" height="16"></div>';
     172    echo '</div>';
     173
    141174    // Advance mode preview
    142     echo '<div class="filter-json-advance-sample mode-pre json">';
    143     echo '<pre class="prettyprint scroll pretty advance prettyprinted">';
    144     self::advanceJsonSample();
     175    echo '<pre class="prettyprint scroll pretty advance prettyprinted" id="filter-output">';
    145176    echo '</pre></div>';
    146177
     
    283314      'action'   => array(
    284315        'thankyou'  => array(
    285           'class' => 'trigger thankyoupage',
    286           'text'  => 'Trigger - thankyou page',
     316          'class'   => 'trigger thankyoupage',
     317          'title'   => 'Watch Orders',
     318          'text'    => 'Trigger when the order checkout in thankyou page'
    287319        ),
    288320        'new order' => array(
    289           'class' => 'trigger neworder',
    290           'text'  => 'Trigger - new order created',
    291         ),
    292         'pending'    => array(
    293           'class' => 'trigger order-status-pending',
    294           'text'  => 'Order Status - pending',
    295         ),
    296         'processing' => array(
    297           'class' => 'trigger order-status-processing',
    298           'text'  => 'Order Status - processing',
    299         ),
    300         'on-hold'    => array(
    301           'class' => 'trigger order-status-on-hold',
    302           'text'  => 'Order Status - on-hold',
    303         ),
    304         'completed'  => array(
    305           'class' => 'trigger order-status-completed',
    306           'text'  => 'Order Status - completed',
    307         ),
    308         'cancelled'  => array(
    309           'class' => 'trigger order-status-cancelled',
    310           'text'  => 'Order Status - cancelled',
    311         ),
    312         'refunded'  => array(
    313           'class' => 'trigger order-status-refunded',
    314           'text'  => 'Order Status - refunded',
     321          'class'   => 'trigger neworder',
     322          'title'   => 'Watch New Orders',
     323          'text'    => 'Trigger when a new order is created'
     324        ),
     325        'pending'     => array(
     326          'class'     => 'trigger order-status-pending',
     327          'title'     => 'Watch Pending Order',
     328          'text'      => 'Trigger when the order status is pending'
     329        ),
     330        'processing'  => array(
     331          'class'     => 'trigger order-status-processing',
     332          'title'     => 'Watch Processing Order',
     333          'text'      => 'Trigger when the order status is processing'
     334        ),
     335        'on-hold'     => array(
     336          'class'     => 'trigger order-status-on-hold',
     337          'title'     => 'Watch On Hold Order',
     338          'text'      => 'Trigger when the order status is on hold'
     339        ),
     340        'completed'   => array(
     341          'class'     => 'trigger order-status-completed',
     342          'title'     => 'Watch Completed Order',
     343          'text'      => 'Trigger when the order status is completed'
     344        ),
     345        'cancelled'   => array(
     346          'class'     => 'trigger order-status-cancelled',
     347          'title'     => 'Watch Cancelled Order',
     348          'text'      => 'Trigger when the order status is cancelled'
     349        ),
     350        'refunded'    => array(
     351          'class'     => 'trigger order-status-refunded',
     352          'title'     => 'Watch Refunded Order',
     353          'text'      => 'Trigger when the order status is refunded'
    315354        ),
    316355        'failed'    => array(
    317356          'class' => 'trigger order-status-failed',
    318           'text'  => 'Order Status - failed',
     357          'title'     => 'Watch Failed Order',
     358          'text'      => 'Trigger when the order status is failed'
    319359        ),
    320360      ),
     
    333373    return array(
    334374      'action' => array(
    335         'thankyou'  => array(
     375        'Orders'  => array(
    336376          'status'  => 'woocommerce_thankyou'
    337377        ),
    338         'new order' => array(
     378        'New Orders' => array(
    339379          'status'  => 'woocommerce_new_order'
    340380        ),
     
    345385  public static function basicJsonSample() {
    346386
    347     echo ' *** Original Order API json sample ***
     387    echo ' *** JSON response example: ***
    348388{
    349389    "id": 727,
     
    516556  public static function advanceJsonSample() {
    517557
    518     echo ' *** Upgrade and filter the Order API json fields ***';
    519     echo '
    520 
     558    echo ' *** Upgrade now ! Filter the Order API json fields ***';
     559    echo ' 
     560 *** JSON response example: ***
    521561{
    522     "status": "completed",
    523     "currency": "USD",
    524     "shipping_total": "10.00",
    525     "total": "29.35",
    526     "billing": {
    527       "first_name": "John",
    528       "last_name": "Doe",
    529       "email": "[email protected]",
    530       "phone": "(555) 555-5555"
     562    "id" : "",
     563    "status" : "",
     564    "total" : "",
     565    "billing" : {
     566            "first_name": "",
     567            "last_name": "",
    531568    },
    532569    "line_items": [
    533       {
    534         "id": 315,
    535         "name": "Woo Single #1",
    536         "product_id": 93,
    537         "total": "6.00",
    538       },
     570            {
     571              "name" : "",
     572              "product_id" : "",
     573              "sku" : "",
     574            },
    539575    ],
    540     "payment_method": "bacs",
    541     "payment_method_title": "Direct Bank Transfer",
    542576}';
    543577
  • anyapi/trunk/inc/Views/RestApi.php

    r3376733 r3394506  
    3030
    3131      echo '<div class="api-input-form">';
    32       echo '<label for="' . esc_attr( $label ) . '">' . esc_attr( $label ) . '<div class="image-container"><img src="' . esc_url( $image ) . '" alt="tooltips icon" width="16" height="16"><div class="image-container"><div class="image-info"><p>'. esc_attr( $tooltips ) .'</p></div></div></div></label>';
     32      echo '<label for="' . esc_attr( $label ) . '" class="api-label">' . esc_attr( $label );
     33      echo '<span class="image-wrapper">';
     34      echo '<img src="' . esc_url( $image ) . '" alt="" width="16" height="16">';
     35      echo '<span class="image-info">'. esc_attr( $tooltips ) .'</span>';
     36      echo '</span></label>';
     37
    3338      echo '<select class="dropdown" id="' . esc_attr( $name ) . '" name="' . esc_attr( $args[ 'option' ] ) . '[' . esc_attr( $name ) . ']">';
    3439
     
    5661    $textAreaValue = $apiBody;
    5762    echo '<div class="api-input-form">';
    58     echo '<label id="bodyLabel" hidden>API BODY<div class="image-container"><img src="' . esc_url( $image ) . '" alt="tooltips icon" width="16" height="16"><div class="image-container"><div class="image-info"><p>API Body</p></div></div></div></label>';
    59     echo '<textarea id="body" name="' . esc_attr( $args[ 'option' ] ) . '[body]" class="" placeholder="Please input API BODY" rows="6" hidden>' . esc_attr( $textAreaValue ) . '</textarea></div>';
     63
     64    echo '<label id="bodyLabel" hidden >API BODY';
     65    echo '<span class="image-wrapper">';
     66    echo '<img src="' . esc_url( $image ) . '" alt="" width="16" height="16">';
     67    echo '<span class="image-info">'. esc_attr( $tooltips ) .'</span>';
     68    echo '</span></label>';
     69
     70    echo '<textarea id="rest-api-body-text" name="' . esc_attr( $args[ 'option' ] ) . '[body]" class="" placeholder="Please input API BODY" rows="6" hidden>' . esc_attr( $textAreaValue ) . '</textarea></div>';
    6071
    6172    foreach ( $fields[ 'text' ] as $key => $value ) {
     
    110121
    111122      echo '<div class="api-input-form">';
    112       echo '<label for="' . esc_attr( $label ) . '">' . esc_attr( $label ) . '<div class="image-container"><img src="' . esc_url( $image ) . '" alt="tooltips icon" width="16" height="16"><div class="image-container"><div class="image-info"><p>'. esc_attr( $tooltips ) .'</p></div></div></div></label><input type="text" id="' . esc_attr( $name ) . '" name="' . esc_attr( $args[ 'option' ] ) . '[' . esc_attr( $name ) . ']" value="' . esc_attr( $inputValue ) . '" placeholder="' . esc_attr( $placeholder ) . '" required>
     123      echo '<label for="' . esc_attr( $label ) . '" class="api-label">' . esc_attr( $label );
     124      echo '<span class="image-wrapper">';
     125      echo '<img src="' . esc_url( $image ) . '" alt="" width="16" height="16">';
     126      echo '<span class="image-info">'. esc_attr( $tooltips ) .'</span>';
     127      echo '</span></label>';
     128
     129      echo '<input type="text" id="' . esc_attr( $name ) . '" name="' . esc_attr( $args[ 'option' ] ) . '[' . esc_attr( $name ) . ']" value="' . esc_attr( $inputValue ) . '" placeholder="' . esc_attr( $placeholder ) . '" required>
    113130      </div>';
    114131
     
    130147        'type'      => array(
    131148          'title'   => 'API Type',
    132           'tooltip' => 'WooCommerce API Type',
     149          'tooltip' => 'Select the WooCommerce API allows you to  create, view, update, and delete individual',
    133150          'option'  => array(
    134151            'orders'    => 'Orders',
     
    139156        'method'    => array(
    140157          'title'   => 'API Methods',
    141           'tooltip' => 'API Methods',
     158          'tooltip' => 'Select the API Methods',
    142159          'option'  => array(
    143160            'get'     => 'GET',
     
    152169          'title'       => 'Domain Name',
    153170          'placeholder' => 'Enter domain name',
    154           'tooltip'     => 'Request API URL',
     171          'tooltip'     => 'URL that request WooCommerce API',
    155172        ),
    156173        'id'      => array(
    157           'title'       => 'ID',
    158           'placeholder' => 'Enter Order ID',
    159           'tooltip'     => 'ID of request',
     174          'title'       => 'Id',
     175          'placeholder' => 'Enter ID for WooCommerce API',
     176          'tooltip'     => 'Enter ID if specified request',
    160177        ),
    161178        'key'     => array(
    162179          'title'       => 'Consumer Key',
    163180          'placeholder' => 'Enter consumer key',
    164           'tooltip'     => 'WooCommerce API Consumer Key',
     181          'tooltip'     => 'WooCommerce REST API Consumer Key',
    165182        ),
    166183        'secret'  => array(
    167184          'title'       => 'Consumer Secret',
    168185          'placeholder' => 'Enter consumer secret',
    169           'tooltip'     => 'WooCommerce API Consumer Secret',
     186          'tooltip'     => 'WooCommerce REST API Consumer Secret',
    170187        ),
    171188      ),
  • anyapi/trunk/readme.txt

    r3376733 r3394506  
    22Contributors: anyapi
    33Donate link:
    4 Tags: api, json, rest, field, product
     4Tags: api, json, webhooks, automation, automator
    55Tested up to: 6.8
    6 Stable tag: 1.1.2
     6Stable tag: 1.1.3
    77License: GPLv2 or later
    88License URI: https://www.gnu.org/licenses/gpl-2.0.html
    99
    10 No-code WooCommerce REST API integration. Connect orders to any API with webhooks, API logs, and easy setup in minutes.
     10AnyAPI No-Code WooCommerce REST API Integration. Connect Orders to any APIs with Automations, JSON Filter, API logs, and Easy Setup in Minutes.
    1111
    1212== Description ==
    1313
    14 [AnyAPI](https://www.anyapiplugin.com) lets you connect WooCommerce and WordPress to any REST API without coding. Set up powerful API integrations in minutes with a beginner-friendly interface and detailed API logs. Perfect for syncing orders to ERPs, AI chatbots, or custom platforms.
     14[AnyAPI](https://www.anyapiplugin.com) lets you connect WooCommerce and WordPress to **any REST API without coding**. Set up powerful API integrations in minutes with a beginner-friendly interface and detailed API logs. Perfect for syncing orders to ERPs, AI chatbots, or custom platforms.
    1515
    16 * Features: single API key, order triggers, REST API tools and API logs.
    17 * No coding required – ideal for business owners, developers, and project managers.
    18 * Supports Basic Auth and Bearer Token authentication.
    19 * Fully tested with WordPress 6.8 and WooCommerce 9.4.1.
     16* Features - API Automation, Order Triggers, Woo API Development Tools and API Logs.
     17* No Coding Required – Ideal for Business Owners, Developers, and Project Managers.
     18* Fully Tested with WordPress 6.8 and WooCommerce 9.4.1.
    2019
    21 = ****** Key Features ****** =
     20= E-commerce Automation =
     21
     22When an order action is triggered, AnyAPI **automatically sends JSON** to kick off.
     23Use **1-click JSON Filter** and **API logs** to connect in seconds. Send **unlimited outgoing webhooks** even on the free plan.
     24
     25= Webhook Automation =
     26
     27Need webhook connectivity? AnyAPI supports:
     28- Security headers
     29- Any HTTP method (GET, POST, PUT, PATCH, DELETE)
     30- Supports Basic Auth and Bearer Token Authentication.
    2231
    2332= Order API Integration =
    2433
    25 - **Seamlessly integrate WordPress, WooCommerce, and any REST API.
    26 - **Trigger most WooCommerce Order API actions (e.g. new order, status change).
    27 - **Custom filter for WooCommerce Order API JSON fields.
    28 - **Preview API JSON for easy setup.
     34- Seamlessly integrate WordPress, WooCommerce, and any REST API.
     35- Trigger most WooCommerce Order API actions (e.g. new order, status change).
     36- Custom Filter for WooCommerce Order API JSON fields.
     37- Preview API JSON fields.
    2938
    30 = WooCommerce RESTAPI Tools =
     39= Woo API Development Tools =
    3140
    32 - **Perform CRUD operations (Create, Read, Update, Delete).
    33 - **Access Orders, Products, and Customers APIs.
    34 - **View Response JSON for debugging.
     41- Perform CRUD operations (Create, Read, Update, Delete).
     42- Access Orders, Products, and Customers APIs.
     43- View Response JSON for debugging.
    3544
    3645= API Integration Logs =
    3746
    38 - **Log all API integration data (Order ID, HTTP Code, URL, Payload, etc.).
    39 - **Monitor and troubleshoot integrations with ease.
    40 
     47- Monitor Real-time API Logging
     48- Log all API integration data (Status, Payloads, Error etc..).
     49- Monitor and troubleshoot integrations with ease.
    4150
    4251== Frequently Asked Questions ==
     
    4857= What is Order API integration ? =
    4958
    50 Send order data to any REST API when a customer purchases on your WooCommerce site. AnyAPI triggers actions and syncs data effortlessly.
     59If you want to send data to any REST API when a customer purchases a product on your website, you can create an OrderAPI integration to trigger actions and send out the purchase data.
     60
     61= What is REST API Tools ? =
     62
     63You can use AnyAPI’s built-in REST API tools to test WooCommerce APIs, and it also provides a simple way to perform CRUD methods.
     64
     65= Do I need to have coding skills to use AnyAPI ? =
     66
     67No. Coding skills are not required to use AnyAPI.
    5168
    5269= Where are the user guides ? =
    5370
    54 Visit our [Getting Started](https://anyapiplugin.com/documentation/) guide for step-by-step setup and configuration.
    55 
     71Visit our [Getting Started](https://anyapiplugin.com/documentation/?utm_source=anyapi_plugin&utm_medium=plugin_details&utm_campaign=docs_in_details) guide for step-by-step setup and configuration.
    5672
    5773== Screenshots ==
    58 Dashboard Features
    59 Dashboard Setup Key
    60 WooCommerce Order API Integration Step 1
    61 WooCommerce Order API Integration Step 2
    62 WooCommerce Order API Integration Step 3
    63 
     741.**Automation** - WooCommerce Order API
     752.**AnyAPI** Dashboard
     763.**API logs* - Monitoring your WooCommerce API integration data
     774.**Visual Interface** - 1-click JSON Filter
     785.**Trigger API** - Turn API status ON to Automate workflows
    6479
    6580== Changelog ==
     81
     82= 1.1.3 (2025-11-12) =
     83* Added - filter fields and json preview in advance mode
     84* Added - notice for apilog
     85* Tweak - tooltips, feature content, orderapi content and description
    6686
    6787= 1.1.2 (2025-10-11) =
  • anyapi/trunk/templates/dashboard.php

    r3347672 r3394506  
    2424              <div class="feature-dashboard-tags">
    2525                <span class="tag tag--codefree">Code-free</span>
    26                 <span class="tag tag--woo">WooCommerce</span>
    27                 <span><small><a href="https://anyapiplugin.com/docs/order-api/setup-order-api-integration/" target="_blank">Start Guide</a></small></span>
     26                <span class="tag tag--woo">Woo</span>
     27                <a href="https://anyapiplugin.com/docs/setup-order-api-integration/?utm_source=anyapi_plugin&utm_medium=plugin_dashboard&utm_campaign=setup_docs_link" target="_blank"><span class="tag tag--new">Start Guide</span></a>
    2828              </div>
    29               <p class="feature-name">Order API Integration</p>
     29              <p class="feature-name">Order API Integration to any APIs</p>
    3030                <?php
    3131                  do_settings_sections( 'anyapi_orderapi_integration_content' );
     
    4343              <div class="feature-dashboard-tags">
    4444                <span class="tag tag--codefree">Code-free</span>
    45                 <span class="tag tag--woo">WooCommerce</span>
    46                 <span><small><a href="https://anyapiplugin.com/docs/woocommerce-api-tools/development-tools/" target="_blank">Start Guide</a></small></span>
     45                <span class="tag tag--woo">Woo</span>
     46                <a href="https://anyapiplugin.com/docs/woocommerce-api-tools/development-tools/?utm_source=anyapi_plugin&utm_medium=plugin_dashboard&utm_campaign=setup_docs_link" target="_blank"><span class="tag tag--new">Start Guide</span></a>
    4747              </div>
    48               <p class="feature-name">API Development Tools</p>
     48              <p class="feature-name">Woo API Development Tools</p>
    4949
    5050              <ul class="feature-attributes">
    5151                <li class="feature-attribute">
    52                   <span><strong>Easy</strong> to Use</span>
     52                  <span><strong>Easy</strong> for Testing</span>
    5353                </li>
    5454                <li class="feature-attribute">
     
    5656                </li>
    5757                <li class="feature-attribute">
    58                   <span><strong>API</strong> order, products, customers</span>
     58                  <span><strong>Access</strong> Order, Products, Customers APIs</span>
    5959                </li>
    6060                <li class="feature-attribute">
    61                   <span><strong>Response</strong> JSON</span>
     61                  <span><strong>View</strong> Response JSON for debugging</span>
    6262                </li>
    6363              </ul>
Note: See TracChangeset for help on using the changeset viewer.