all files / addon/components/ polaris-page.js

100% Statements 0/0
100% Branches 0/0
100% Functions 0/0
100% Lines 0/0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151                                                                                                                                                                                                                                                                                                             
import Component from '@ember/component';
import { or } from '@ember/object/computed';
import layout from '../templates/components/polaris-page';
 
/**
 * Polaris page component.
 * See https://polaris.shopify.com/components/structure/page
 */
export default Component.extend({
  classNames: ['Polaris-Page'],
  classNameBindings: [
    'fullWidth:Polaris-Page--fullWidth',
    'singleColumn:Polaris-Page--singleColumn'
  ],
 
  layout,
 
  /**
   * Page title, in large type
   *
   * @property title
   * @public
   * @type {string}
   * @default null
   */
  title: null,
 
  /**
   * Visually hide the title
   *
   * @property titleHidden
   * @public
   * @type {boolean}
   * @default false
   */
  titleHidden: false,
 
  /**
   * App icon, for pages that are part of Shopify apps
   *
   * @property icon
   * @public
   * @type {string}
   * @default null
   * TODO: not implemented yet.
   */
  icon: null,
 
  /**
   * Collection of breadcrumbs
   *
   * @property breadcrumbs
   * @public
   * @type {Array}
   * @default null
   */
  breadcrumbs: null,
 
  /**
   * The contents of the page
   *
   * This component can be used in block form,
   * in which case the block content will be used
   * instead of `text`
   *
   * @property text
   * @public
   * @type {String}
   * @default null
   */
  text: null,
 
  /**
   * Remove the normal max-width on the page
   *
   * @property fullWidth
   * @public
   * @type {boolean}
   * @default false
   */
  fullWidth: false,
 
  /**
   * Decreases the maximum layout width. Intended for single-column layouts
   *
   * @property singleColumn
   * @public
   * @type {boolean}
   * @default false
   */
  singleColumn: false,
 
  /**
   * Adds a border to the bottom of the page header
   *
   * @property separator
   * @public
   * @type {boolean}
   * @default false
   */
  separator: false,
 
  /**
   * Collection of secondary page-level actions
   *
   * @property secondaryActions
   * @public
   * @type {Array}
   * @default null
   */
  secondaryActions: null,
 
  /**
   * Collection of page-level groups of secondary actions
   *
   * @property actionGroups
   * @public
   * @type {Array}
   * @default null
   * TODO: not implemented yet
   */
  actionGroups: null,
 
  /**
   * Primary page-level action
   *
   * @property primaryAction
   * @public
   * @type {Object}
   * @default null
   */
  primaryAction: null,
 
  /**
   * Page-level pagination
   *
   * @property pagination
   * @public
   * @type {PaginationDescriptor}
   * @default null
   * TODO: not implemented yet
   */
  pagination: null,
 
  /**
   * Computed properties.
   */
  hasHeaderContent: or('title', 'primaryAction', 'secondaryActions', 'breadcrumbs').readOnly(),
});